Ubuntu的新贵永远不会杀死我的过程

我有一个简单的bash脚本:

echo "Starting" function sigint { echo "sigint" } function sigterm { echo "sigterm" } trap sigterm SIGTERM trap sigint SIGINT while true do sleep 2 echo "-" done 

我用这个configuration文件启动这个脚本:

 description "start trapper" kill timeout 1 script ./home/ubuntu/trapper.sh >> /home/ubuntu/log.txt end script post-stop script echo "finished" >> /home/ubuntu/log.txt end script 

当我启动它,暴发户,我可以监视/home/ubuntu/log.txt它的输出。 问题是,当我停止工作,我看到sigterm被发送到我的程序(它打印),然后直接看到“完成”(这是写在停止脚本),但我仍然看到“ – ”每2秒打印一次…

会发生什么,即使它说停止成功(因为它进入后停止脚本),新贵永远不会发送SIGKILL到我的脚本。

任何帮助将是伟大的!

它最有可能发送SIGKILL到shell。 尝试在./home/ubuntu/trapper.sh之前添加exec