2019-08-21 如何解决虚拟机重启后数聚蜂巢注册的系统服务由于启动顺序原因导致的启动失败

解决问题的思路是: 在失败的service文件的service段添加如下4行,设置每隔45s自动重新启动服务,最多10次,500s之内,确保服务可以启动正常。

此处举例长安马自达POC环境部署时遇到的问题 : 解决重启虚拟机后kong-1和kong-101两个服务始终启动失败(手动启动则正常),其他服务自动启动正常。

目前已修改上述kong-1,kong-101的service文件,解决了重启后kong第一次启动失败需要手动启动的问题。

解决方式是,在两个service文件的service段添加如下4行,设置每隔45s尝试重新启动服务,最多10次,500s之内。然后使用 systemctl daemon-reload 重载一下,最后 shutdown -r now 重启虚拟机待启动后ssh登录查看各服务状态即可:

Restart=always
RestartSec=45
StartLimitIntervalSec=500
StartLimitBurst=10

/etc/systemd/system/kong-101.service

[Unit]
Description=kong-101 service
After=syslog.target network.target

[Service]
Restart=always
RestartSec=45
StartLimitIntervalSec=500
StartLimitBurst=10
User=root
Group=root
Type=forking
PIDFile=/usr/local/kong/kong-101/pids/nginx.pid

1.  Environment="http_proxy=[http://127.0.0.1:8123](http://127.0.0.1:8123/)"
2.  Environment="https_proxy=[http://127.0.0.1:8123](http://127.0.0.1:8123/)"
3.  Environment="no_proxy=localhost,127.0.0.1"

1.  The prefix minus sign means to ignore failed exit code of the command
    ExecStartPre=-/usr/local/bin/kong stop -p /usr/local/kong/kong-101
    ExecStart=/usr/local/bin/kong start -p /usr/local/kong/kong-101 -c /etc/kong/kong-101.conf
    ExecReload=/usr/local/bin/kong reload -p /usr/local/kong/kong-101 -c /etc/kong/kong-101.conf
    ExecStop=/usr/local/bin/kong stop -p /usr/local/kong/kong-101
    LimitAS=infinity
    LimitRSS=infinity
    LimitCORE=infinity
    LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

你可能感兴趣的:(2019-08-21 如何解决虚拟机重启后数聚蜂巢注册的系统服务由于启动顺序原因导致的启动失败)