mik*_*ike 162 linux unix gnu-screen
可能的重复:
我可以 nohup/screen 一个已经启动的进程吗?
在 Unix(特别是 Linux)上,我在常规 ssh->bash 会话中开始了一项工作。我想尽快下班,但我现在意识到这项工作需要几个小时。
如果我刚刚在银幕上开始这项工作,我可以分离回家。但我没有。
有什么方法可以断开作业与其 ssh 会话的连接,这样我就可以关闭我的计算机(断开 TCP 连接并终止 ssh 会话),并且程序继续运行?
我不在乎它的输出——事实上,我将 stdout 重定向到了一个文件。我只是想让它运行完成。
小智 17
用 nohup 命令 & 是美丽的: root@index:~# nohup /usr/bin/curl localhost/begemot.php & [1] 894 root@index:~# nohup: 忽略输入并将输出附加到 `nohup.out' 并退出此终端,继续进行任务...
从你的 bash shell 中:
control+z
Run Code Online (Sandbox Code Playgroud)
然后,继续在后台运行作业:
bg
Run Code Online (Sandbox Code Playgroud)
稍后,您可以键入 jobs 以查看您的进程是否仍在运行。
screen当我连接到我经常使用的主机时,我已经开始设置为自动运行,以避免这个问题。
http://tlug.dnho.net/?q=node/239是一种方法,尽管还有其他变化。
当我在会话期间意外断开连接时,已经救了我一两次,否则screen我会在开始冗长的事情之前忘记开始。
在运行命令时使用 crtl-Z 然后使用 bg 或使用 & 在 100% 时不可靠。它在大多数情况下都可以工作,但在某些情况下可能无法按预期工作(I/O 使用,...)。
Screen 是一个可靠的解决方案。