【发布时间】:2012-07-12 01:14:46
【问题描述】:
在 redhat 中使用旧的 initscript 时,我遇到了这样的问题
daemon --user $USER --pidfile $PIDFILE "cmd >>/var/log/cmd.log 2>&1 &"
它似乎很可疑,因为它不使用 nohup。但是程序可以正常工作,即使退出控制终端也能保持运行。进一步调查我发现一个命令,例如bash -c 'sleep 1000&',即使退出了调用它的终端(如果没有nohup,这应该是不可能的)。我用最新的 ubuntu 验证了这种行为。
所以我的问题是,这种行为众所周知吗?也就是说,我可以在我的初始化脚本中使用它而不是使用 nohup 吗?还是 bash 中的错误?
【问题讨论】:
-
Bash 仅在交互式会话中进行作业控制(包括发送作业 SIGHUP)。
-
@jordanm 这是一个答案;为什么不做一个?
-
我也想。对于 bash,这似乎并非普遍适用。