可能的复制品: 防止在关闭 SSH 客户端 后停止后台进程
我有一个需要很长时间才能完成的项目。 它作为 root 用户在 ssh 上运行。 我想它继续运行后,我注销,这是可能的,我将如何实现这一点?
从背景开始:
./long_running_process options &
在你退出之前和这份工作断绝关系:
disown
您应该尝试使用 nohup并在后台运行它:
nohup
nohup sleep 3600 &
你想要 没有。参见 http://nixcraft.com/linux-software/313-ssh-nohup-connection.html
我会尝试程序 屏幕。
你可以使用 screen,分离和重新连接
screen
假设您有一个在前台运行的程序,按 ctrl-Z,然后:
[1]+ Stopped myprogram $ disown -h %1 $ bg 1 [1]+ myprogram & $ logout
如果只有一个作业,则不需要指定作业编号,只需使用 disown -h和 bg。
disown -h
bg
按 ctrl-Z。系统挂起正在运行的程序,显示作业编号和“停止”消息,并将您返回到 bash 提示符。
输入 disown -h %1命令(在这里,我使用了 1,但是您将使用在 Stopped消息中显示的作业编号)来标记该作业,因此它将忽略 SIGHUP信号(它不会通过注销来停止)。
disown -h %1
1
Stopped
SIGHUP
接下来,使用相同的作业编号键入 bg命令; 这将恢复程序在后台的运行,并显示一条消息确认。
您现在可以注销,它将继续运行. 。