帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:命令行  引导  COMM  LOC  COM  BOO  ses  Comma  

问题:

我正在尝试运行一个分离的屏幕,在 rc.local的特定用户启动。 下面的代码是我目前所做的,但它对我来说不适用。 su部件似乎给了我一个错误。


su - username -c/usr/bin/screen -dmS test bash -c '/var/www/path/to/script/script.sh; exec bash'




回答 1:

我想 -c 参数( subash ) 都必须至少被引用。


su - username -c"/usr/bin/screen -dmS test bash -c '/var/www/path/to/script/script.sh; exec bash'"



也希望 - 是最后一个,在这里可以能不需要( 查看 man su )。

A remarks sudo 可能是你的shot命令更好的选择,但不一定是这样的。


sudo -iu username/usr/bin/screen -dmS test bash -c '/var/www/path/to/script/script.sh; exec bash'



特别是,你可以使用一个较少的引用 sudo 引用。

你要注意的另一件事是在特权上下文中执行没有绝对路径的命令。 对于 su ( 或者 sudo ),这也适用于你的命令中的bash 路径。 你是用 screen 做的。

只是测试了一下,效果良好。 我认为 - 是你原始行的主要问题:


/bin/su username -c"/usr/bin/screen -dmS test bash -c '/home/username/test.sh; exec bash'"



你为什么不给 tmux 一个试试? 我最近切换过,从来没看过。 我只需要立即修改的是前缀键组合,在 tmux 默认为 Ctrl + B - 返回到 GNU screen Ctrl + +。

它允许将窗口分割成几乎任意数量的窗格( 垂直 水平),它的配置文件格式( 包括 status par ) 实际上可以让人理解。 当然,当你只需要运行一些不是后台写作守护进程的程序/脚本时,tmux 就像 screen 一样好。 但是,如果你打算与终端多路复用器交互,我强烈建议你使用 tmux


回答 2:

下面是我发现它是最干净最简单的( 测试自己工作):

将"用户"替换为用户以将它的作为。 将"nameyouchoose"替换为屏幕会话替换"/script/start.bash" 到脚本路径的名称。


/usr/bin/sudo -u user/usr/bin/screen -dmS nameyouchoose/script/start.bash



源:http://realtechtalk.com/How_to_start_screen_in_bash_script_or_from_etcrclocal_on_startup_as_a_specific_user-1980-articles




文章标签:COM  COMM  BOO  引导  Comma  LOC  命令行  Local  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语