如何使程序从ssh注销后继续运行?
可能重复:
Linux:closuresSSH客户端后,防止后台进程停止
我有一个程序需要花费很多时间才能完成。 它通过ssh作为root运行。
我希望它在注销后继续运行,这是可能的,我将如何实现这一目标?
假设你有一个程序在前台运行, 按ctrl-Z ,然后:
[1]+ Stopped myprogram $ disown -h %1 $ bg 1 [1]+ myprogram & $ logout
如果只有一个工作,则不需要指定工作编号。 只要使用disown -h
和bg
。
上述步骤的说明:
你按ctrl-Z。 系统挂起正在运行的程序,显示一个作业号和一个“已停止”消息,并返回到bash提示符。
你inputdisown -h %1
命令(在这里,我使用了1
,但是你会使用Stopped
消息中显示的作业号)来标记作业,所以它忽略了SIGHUP
信号(它不会是停止通过注销)。
接下来,使用相同的作业编号键入bg
命令; 这将在后台恢复程序的运行,并显示一条消息以确认。
您现在可以注销,它将继续运行..
你应该尝试使用nohup
并在后台运行它:
nohup sleep 3600 &
我会尝试程序屏幕 。
在后台开始:
./long_running_process options &
在您注销之前,请拒绝您的工作:
disown
你可以使用screen
,分离和重新附加