Answers:
这是个简单的:
screen -d -m yourcommand
screen yourcommand
不使用-d
and进行操作,-m
然后看看如何进行。
zombie
屏幕中的选项来更改它。放入zombie xy
您的~/.screenrc
。也应该有可能仅zombie xy
在一个会话中启用它b放入另一个文件并使用,-c file
但由于某些原因,当我尝试使用它时不起作用。或者只是使用sh -c 'yourcommand;while :;do sleep 9999; done'
要在屏幕中运行单个命令并分离,您可以尝试:
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屏幕,运行命令,分离。
-S sessionname
:screen -dmS MyLongRunningScript bash -c "..."
。
为了在后台启动名为“ sleepy”的新会话
screen -S sleepy -dm sleep 60
为了杀死“困”的会话
screen -S sleepy -X quit
screen -S sleepy -dm "cd myfolder;sleep 60"
?
当我按下控件c(sig int)退出我的程序时,这发生在我身上。它从所有bash一直退出。所以我发现它抓住了SIGINT。并防止退出最后一击。(需要输入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程序很有用。并在启动时运行屏幕。在cron中有特殊事件语法@reboot事件
to edit cron, execute:
crontab -e
then type
@reboot screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"