ubuntu – 如何让upstart退缩,而不是放弃

我希望Upstart做两件事:

>停止尝试如此快速地重建失败的过程
>永不放弃尝试重生

一个理想的世界中,暴发户会尝试在1秒后重启死机,然后在每次尝试时加倍延迟,直到达到一小时.

这样的事情可能吗?

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

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...