是否可以更改 Linux 中正在运行的进程,以便它在注销时不会退出?

是否可以更改 Linux 中正在运行的进程,以便它在注销时不会退出?

我知道您可以使用它nohup在注销后继续运行作业,但是对于已经在运行的进程该怎么办?

有没有办法改变它的状态,以便它在我注销后仍继续运行?

答案1

在 Bash 中你可以disown过程

disown [-ar] [-h] [jobspec … ]     

每个作业都jobspec将从活跃作业表中删除。

  • -h如果 shell 收到 SIGHUP,则不会向作业发送 SIGHUP。当前作业。
  • -a所有-r正在运行的作业。

也可以看看:Shell 内容:作业控制和屏幕

如果您使用 bash shell,那么您还有另一种选择(您总是这样做吗?)不要使用 nohup,而是正常运行该命令,用我们讨论过的两种方法之一将其置于后台,然后 disown -h 该作业。

$ tar cjf /backup/rob/home.tar.bz2 . &

[1] 32089
$ disown -h

然后,您就可以安全地注销或关闭终端。与 nohup 一样,如果您关闭终端或注销,您将无法使用 jobs 和%<N>fg <N>命令直接访问该命令。

Stack Exchange 网络上的相关文章:

相关内容