在运行带有&符号的流程背景时,nohup无效?

时间:2015-09-15 02:41:13

标签: linux nohup

据我所知,nohup可以保持流程正常运行,而无需关心终端的退出。但是我发现当我在后台运行一个进程(没有nohup)最后使用&符号(&),然后从终端退出时,我仍然可以在机器中找到进程。< / p>

这是一个简单的例子;我运行以下命令,然后退出终端:

ping localhost &

但是,我找到了&#34; ping&#34;虽然我在这里没有使用nohup,但仍在机器中运行的进程。我误解了nohup的真实用法吗?

1 个答案:

答案 0 :(得分:6)

您从会话注销后看到您的进程仍在运行的原因可能是您的shell在注销时不会发送sighup。 您可以通过运行确认:

shopt | grep hupon 

我认为它会返回类似huponexit off ...

的内容

每个Linux / shell都不能保证这样做,所以为了保持安全并让你的脚本可移植,我建议使用nohup。 E.g。

nohup ping localhost &

要确认您还可以通过运行

启用huponexit
shopt -s huponexit

然后在没有nohup的情况下运行命令,注销/退出shell并检查您的进程是否仍在运行。