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

bh1*_*bh1 2 linux process nohup

我知道您可以用来nohup在注销后保持作业运行,但是一个已经在运行的进程呢?

有没有办法改变它的状态,以便即使我注销它也能继续运行?

slh*_*hck 5

在 Bash 中,您可以disown处理.

disown [-ar] [-h] [jobspec … ]     
Run Code Online (Sandbox Code Playgroud)

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

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

另请参阅:Shell 内容:作业控制和屏幕

如果你使用 bash shell,那么你有一个替代方案(你不是总是这样吗?)而不是使用 nohup,只需正常运行命令,将它放在我们讨论过的两种方式之一的后台,然后拒绝 -工作。

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

[1] 32089
$ disown -h
Run Code Online (Sandbox Code Playgroud)

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

Stack Exchange 网络上的相关帖子: