在 Unix(具体来说,Linux)上,我在常规 ssh->bash 会话中启动了一项工作。我想尽快下班,但现在我意识到这项工作将花费几个小时。
如果我刚开始在 Screen 工作,我就可以离开并回家。但我没有。
有什么方法可以断开作业与其 ssh 会话的连接,这样我就可以关闭计算机(断开 TCP 连接并终止 ssh 会话),但程序仍继续运行?
我并不关心它的输出——事实上,我将 stdout 重定向到了一个文件。我只希望它能够运行完成。
答案1
您可以按ctrl-z
中断该进程,然后运行bg
以使其在后台运行。
您可以使用 来显示以此方式后台运行的所有进程的编号列表jobs
。
然后您可以运行disown %1
(替换1
为输出的进程号jobs
)来从终端分离该进程。
无论名称如何,运行后该进程仍然归您所有disown
,它只是与您启动它的终端分离。
答案2
我相信你正在寻找的命令是“disown”
答案3
使用
nohup command &
是美丽的:
root@index:~# nohup /usr/bin/curl localhost/begemot.php &
[1] 894
root@index:~# nohup: ignoring input and appending output to `nohup.out'
并退出此终端,任务将继续进行......
答案4
使用时雷普特在屏幕内,您可以将流程(或其输出)移动到屏幕中。