我正在命名屏幕中启动一个进程,例如:
screen -dmS myscreen bash -c "export VAR=123; cd /usr/local/myproject; ./myscript.py"
Run Code Online (Sandbox Code Playgroud)
然而,几分钟后,我的脚本崩溃了,当它退出屏幕时,我看不到调试输出。我的脚本运行时间足够长,所以我可以手动附加到屏幕,但屏幕仍然会自动终止将我踢出它。
当正在运行的进程停止时,如何阻止屏幕退出?
您可以将输出通过管道传输到less
或文件,tee
然后再到less
,或者只是在命令sleep 99999
之后添加一个“暂停”命令。
screen -dmS myscreen bash -c "export VAR=123; cd /usr/local/myproject; ./myscript.py; sleep 9999"
Run Code Online (Sandbox Code Playgroud)
在任何情况下,我都建议从screen
to切换tmux
,您可以使用此问题来了解如何运行命令并在它退出后离开。
基本上你可以添加bash -i
到命令的末尾。
tmux start-server
tmux new-session -d
tmux new-window 'ls;bash -i'
Run Code Online (Sandbox Code Playgroud)
或者您可以使用此选项remain-on-exit
set-remain-on-exit [on | 离开]
当此选项为真时,正在运行的程序已退出的窗口不会关闭,而是保持打开状态但不活动。
归档时间: |
|
查看次数: |
5146 次 |
最近记录: |