如何使程序在从 ssh 注销后继续运行?

可能的复制品:
防止在关闭 SSH 客户端 后停止后台进程

我有一个需要很长时间才能完成的项目。 它作为 root 用户在 ssh 上运行。
我想它继续运行后,我注销,这是可能的,我将如何实现这一点?

209247 次浏览

从背景开始:

./long_running_process options &

在你退出之前和这份工作断绝关系:

disown

您应该尝试使用 nohup并在后台运行它:

nohup sleep 3600 &

我会尝试程序 屏幕

你可以使用 screen,分离和重新连接

假设您有一个在前台运行的程序,按 ctrl-Z,然后:

[1]+  Stopped                 myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout

如果只有一个作业,则不需要指定作业编号,只需使用 disown -hbg

上述步骤的说明:

按 ctrl-Z。系统挂起正在运行的程序,显示作业编号和“停止”消息,并将您返回到 bash 提示符。

输入 disown -h %1命令(在这里,我使用了 1,但是您将使用在 Stopped消息中显示的作业编号)来标记该作业,因此它将忽略 SIGHUP信号(它不会通过注销来停止)。

接下来,使用相同的作业编号键入 bg命令; 这将恢复程序在后台的运行,并显示一条消息确认。

您现在可以注销,它将继续运行. 。