可能是重复的问题:
如何防止在关闭SSH客户端后停止后台进程
我有一个需要很长时间才能完成的程序。
它在通过ssh以root身份运行。
我想让它在我注销后继续运行,这可能吗?如何实现?
可能是重复的问题:
如何防止在关闭SSH客户端后停止后台进程
我有一个需要很长时间才能完成的程序。
它在通过ssh以root身份运行。
我想让它在我注销后继续运行,这可能吗?如何实现?
假设您有一个正在前台运行的程序,按下ctrl-Z,然后:
[1]+ Stopped myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout
如果只有一个作业,那么您不需要指定作业编号。只需使用disown -h
和bg
命令即可。disown -h %1
命令(这里我使用了1
,但您应该使用在Stopped
消息中显示的作业编号),标记该作业使其忽略SIGHUP
信号(它不会因为注销而停止)。
接下来,使用相同的作业编号输入bg
命令;这将在后台恢复程序运行,并显示确认消息。
现在您可以注销并且程序将继续运行..你应该尝试使用nohup
并在后台运行:
nohup sleep 3600 &
tmux
或 screen
。 - James M. Laynohup <我的程序>
然后按下 CTRL-Z
+ bg
然后就可以退出登录。你可以用另一个 ssh 命令查看 top
来验证它是否还在运行。 - Hulvejtail -f nohup.out
实时查看输出,如果需要重新启动,则可以使用 kill
命令杀死该进程的 PID。 - veggiebenztmux
。 - rubo77在后台启动:
./long_running_process options &
在注销之前,先取消挂起作业:
disown
batch
,例如echo myprogram its arguments | batch
。 - Basile Starynkevitchreptyr
和screen
。通过输入screen
来启动一个screen会话。找到你的程序的进程ID:ps aux| grep <myprogramname>
。在你的screen会话中,输入reptyr <myprogrampid>
,现在你应该能看到你的程序在screen会话中运行。你可以关闭你的ssh会话,screen会继续运行,等待你重新连接。要重新连接,运行screen -ls
来查找可用的会话列表,并使用screen -r <mysessionid>
重新连接。 - undefined