一尘不染

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

linux

我有一个程序,需要很多时间才能完成。它以root身份通过ssh运行。
我希望它在注销后继续运行,这可能吗,我将如何实现?


阅读 622

收藏
2020-06-02

共1个答案

一尘不染

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

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

如果只有一项作业,则无需指定作业号。只需使用disown -h和即可bg

以上步骤说明:

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

您键入disown -h %1命令(该命令已在其中使用1,但您将使用Stopped消息中显示的作业编号),该命令标记了该作业,因此它忽略了SIGHUP信号(不会因注销而停止)。

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

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

2020-06-02