这是我的脚本(run.sh
):
rm -f nohup.out
nohup myproc &
tailf nohup.out
如果我运行脚本(sh run.sh
)然后按 Control-C ,myproc
将被终止,
但如果我对tailf nohup.out
部分发表评论,myproc
将按预期在后台运行。
我做错了吗?
答案 0 :(得分:1)
问题不是SIGHUP
(nohup
会抓到的),而是{k} 发送的SIGINT
。这会传播到您的流程。
有关详细信息,请参阅此blog post。
根据我从该帖子中读到的内容,您可以将代码更改为以下内容:
setsid myproc 1> output.log 2>&1 &
tail -f output.log
如果您不想使用自己的输出重定向,仍然可以使用nohup
:
setsid nohup ping -c 30 localhost &
tail -f nohup.out
希望这有帮助!