在Redhat中使用旧的init脚本时,我遇到了以下这行代码:
daemon --user $USER --pidfile $PIDFILE "cmd >>/var/log/cmd.log 2>&1 &"
它看起来可疑,因为它没有使用nohup。但是该程序可以正常运行,并且即使控制终端退出,也能保持运行状态。进一步调查后,我发现一个命令例如bash -c 'sleep 1000&'
似乎即使从中调用的终端退出,也会保持运行状态(这应该不可能没有nohup)。我已经在最新的Ubuntu上验证了这种行为。
所以我的问题是,这种行为是否广为人知?也就是说,我是否可以在我的init脚本中使用它,而不是使用nohup?或者这是bash中的一个错误?