Upstart Cookbook建议延迟停止(
http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job).使用不带参数的respawn节,它将继续尝试:
respawn post-stop exec sleep 5
(我从this Ask Ubuntu question得到这个)
要添加指数延迟部分,我尝试在后停止脚本中使用环境变量,我想如下:
env SLEEP_TIME=1 post-stop script sleep $SLEEP_TIME NEW_SLEEP_TIME=`expr 2 \* $SLEEP_TIME` if [ $NEW_SLEEP_TIME -ge 60 ]; then NEW_SLEEP_TIME=60 fi initctl set-env SLEEP_TIME=$NEW_SLEEP_TIME end script
**编辑**
要仅在重新生成时应用延迟,避免实际停止时的延迟,请使用以下内容检查当前目标是否“停止”:
env SLEEP_TIME=1 post-stop script goal=`initctl status $UPSTART_JOB | awk '{print $2}' | cut -d '/' -f 1` if [ $goal != "stop" ]; then sleep $SLEEP_TIME NEW_SLEEP_TIME=`expr 2 \* $SLEEP_TIME` if [ $NEW_SLEEP_TIME -ge 60 ]; then NEW_SLEEP_TIME=60 fi initctl set-env SLEEP_TIME=$NEW_SLEEP_TIME fi end script
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。