如何在已经在后台运行的进程中使用nohup

问题描述 投票:0回答:1

因此,我的unix终端上有一个正在Background中运行的作业,一段时间后,我将不得不关闭ssh终端,在那之后我的工作也必须继续。如何使用nohup或任何其他可能的选项来实现此目的。

linux unix nohup
1个回答
0
投票

nohup开始新的过程。您不能将其追溯应用到已经启动的进程中。

但是,如果您从中启动作业的shell是bashkshzsh,则disown作业控件内置可以提供所需的内容。它可以将作业完全从作业控制中删除,也可以仅在父外壳本身收到作业时将其标记为不发送SIGHUP。这与通过nohup命令启动进程的效果类似,但不一定相同。

[请注意,如果作业的任何标准流都连接到会话的终端,您的作业仍可能会出现问题。这通常是nohup抢先的东西,但是disown在此之后不能进行修改。通常,最好是预料到这种需求并以nohup开始该过程,但是如果您没有那么有远见,那么disown可能是您的下一个最佳选择。

也请注意,作为作业控制命令,disown采用作业规范来标识要操作的作业,而不是进程ID。如有必要,可以使用内置的jobs帮助确定适当的作业规范。

© www.soinside.com 2019 - 2024. All rights reserved.