是否可以将进程与其终端分离?(或者,“我应该使用屏幕!”)

是否可以将进程与其终端分离?(或者,“我应该使用屏幕!”)

可能重复:
我可以 nohup/screen 一个已经启动的进程吗?

在 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

使用时雷普特在屏幕内,您可以将流程(或其输出)移动到屏幕中。

相关内容