ubuntu upstart 永远不会终止我的进程

ubuntu upstart 永远不会终止我的进程

我有一个简单的 bash 脚本:

echo "Starting"
function sigint {
   echo "sigint"
}

function sigterm {
   echo "sigterm"
}

trap sigterm SIGTERM
trap sigint SIGINT

while true
do
  sleep 2
  echo "-"
done

我使用这个配置文件通过 upstart 启动这个脚本:

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

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

所发生的情况是,upstart 永远不会向我的脚本发送 SIGKILL,即使它说停止成功(因为它进入了停止后脚本)。

任何帮助都将非常有帮助!

答案1

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

相关内容