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

可能重复:
Linux:closuresSSH客户端后,防止后台进程停止

我有一个程序需要花费很多时间才能完成。 它通过ssh作为root运行。
我希望它在注销后继续运行,这是可能的,我将如何实现这一目标?

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

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

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

上述步骤的说明:

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

你inputdisown -h %1命令(在这里,我使用了1 ,但是你会使用Stopped消息中显示的作业号)来标记作业,所以它忽略了SIGHUP信号(它不会是停止通过注销)。

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

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

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

 nohup sleep 3600 & 

我会尝试程序屏幕 。

在后台开始:

 ./long_running_process options & 

在您注销之前,请拒绝您的工作:

 disown 

你可以使用screen ,分离和重新附加