|
問題:supervisorctl restart 服務(wù)名 失敗 案例: [root@node203 ~]# supervisorctl status etcd-server-97-203 RUNNING pid 7706, uptime 14:29:46 kube-apiserver-97-203 FATAL Exited too quickly (process log may have details) 
查看supervisor日志: tail -f /var/log/supervisor/supervisord.log entered FATAL state, too many start retries too quickly 說明:從報(bào)錯信息看出,是該服務(wù)重啟次數(shù)太多,因?yàn)樵谂渲弥杏袇?shù): startretries = 5 這個參數(shù)是在服務(wù)重啟失敗后,嘗試重啟的次數(shù),所以supervisor一直在重啟,然后一直失敗,達(dá)到最大次數(shù)就報(bào)以上的錯誤 查看kube-apiserver服務(wù)日志: error: failed to create listener: failed to listen on 127.0.0.1:8080: listen tcp 127.0.0.1:8080: bind: address already in use 提示監(jiān)聽端口已存在,這時候我們執(zhí)行以下操作: netstat -tnlp ps -ef|grep api-server 果然,該進(jìn)程并沒有完全停止,可以臨時采用kill 進(jìn)程號停止,然后再supervisorctl start 服務(wù)名,成功 或者 為了避免在重啟的時候出現(xiàn)端口存在(默認(rèn)supervisord不會stop子進(jìn)程),需要在/etc/supervisord.d/*.ini 該服務(wù)的.ini配置文件中添加以下兩項(xiàng): stopasgroup=true #這個東西主要用于,supervisord管理的子進(jìn)程,這個子進(jìn)程本身還有,子進(jìn)程。那么我們?nèi)绻麅H僅干掉supervisord的子進(jìn)程的話,子進(jìn)程的子進(jìn)程,有可能會變成孤兒進(jìn)程。所以咱們可以設(shè)置可個選項(xiàng),把整個該子進(jìn)程的,整個進(jìn)程組都干掉。 設(shè)置為true的話,一般killasgroup也會被設(shè)置為true。需要注意的是,該選項(xiàng)發(fā)送的是stop信號,默認(rèn)為false。。非必須設(shè)置。 killasgroup=true 改好后,記得supervisorctl update #https://www.cnblogs.com/liucx/ 切記不要使用 supervisorctl restart,restart是重啟所有項(xiàng)目服務(wù),可能導(dǎo)致整個集群服務(wù)掛了 建議:使用systemd方式啟動
|