問題:supervisorctl restart 服務名 失敗
案例:
[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
說明:從報錯資訊看出,是該服務重啟次數太多,因為在配置中有引數:
startretries = 5
這個引數是在服務重啟失敗后,嘗試重啟的次數,所以supervisor一直在重啟,然后一直失敗,達到最大次數就報以上的錯誤
查看kube-apiserver服務日志:
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
提示監聽埠已存在,這時候我們執行以下操作:
netstat -tnlp
ps -ef|grep api-server
果然,該行程并沒有完全停止,可以臨時采用kill 行程號停止,然后再supervisorctl start 服務名,成功
或者
為了避免在重啟的時候出現埠存在(默認supervisord不會stop子行程),需要在/etc/supervisord.d/*.ini 該服務的.ini組態檔中添加以下兩項:
stopasgroup=true
#這個東西主要用于,supervisord管理的子行程,這個子行程本身還有,子行程,那么我們如果僅僅干掉supervisord的子行程的話,子行程的子行程,有可能會變成孤兒行程,所以咱們可以設定可個選項,把整個該子行程的,整個行程組都干掉, 設定為true的話,一般killasgroup也會被設定為true,需要注意的是,該選項發送的是stop信號,默認為false,,非必須設定,
killasgroup=true
改好后,記得supervisorctl update
#https://www.cnblogs.com/liucx/
切記不要使用 supervisorctl restart,restart是重啟所有專案服務,可能導致整個集群服務掛了
建議:使用systemd方式啟動
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/79196.html
標籤:Linux
下一篇:linux操作場景用到的命令
