82
82
如何在屏幕中执行命令并脱离?
如何让屏幕执行命令然后脱离(也就是在一个脚本中自动执行,除了最初启动脚本外,不需要进一步的输入)? 例如,我运行myscript.sh,它自动启动一个屏幕会话,执行一个命令,然后脱离。
如何让屏幕执行命令然后脱离(也就是在一个脚本中自动执行,除了最初启动脚本外,不需要进一步的输入)? 例如,我运行myscript.sh,它自动启动一个屏幕会话,执行一个命令,然后脱离。
这是个简单的问题。
screen -d -m yourcommand
如果要在屏幕上运行一条命令并分离,你可以尝试。
screen -dm sleep 10
要运行多个命令,请尝试:
screen -dm bash -c "sleep 10; myscript.sh"
请注意,当一个程序终止时,屏幕(默认)会杀死包含它的窗口。
如果你不希望你的会话在脚本结束后被杀死,请在末尾加上exec sh
,例如
screen -dm bash -c 'sleep 5; exec sh'
要列出所有会话,请尝试:
screen -list
相关内容: 启动Unix屏幕, 运行命令, 解除.
为了在后台以'sleepy'为名启动新的会话
screen -S sleepy -dm sleep 60
为了杀死'sleepy'会话
screen -S sleepy -X quit
``` 。
当我按control c (sig int)退出程序时,它就会从所有的bash程序中退出,所以我找到了这个方法来捕获sig int,并防止从最后的bash程序中退出,(需要输入exit来退出)
screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"
example:
screen -dmS "status_updates" bash -c "trap 'echo gotsigint' INT; cd /opt/status_update ; forever index.js ; bash"
我发现使用cron在启动时运行nodejs程序很有用。(需要输入exit才能退出)
to edit cron, execute:
crontab -e
then type
@reboot screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"
我发现使用cron在启动时运行nodejs程序很有用。