supervisor常見報錯

基本思路:
首先我們要明確問題出在supervisor上還是啓動的程序上,可以用ps -ef | grep supervisord查看是否啓動,在用ps查看自己的進程有沒有啓動;
確認下啓動的supervisor配置文件是哪個,有的是/etc/supervisor/supervisord.conf,有的是/etc/supervisord.conf,以自己的爲準,不要弄混;
推薦使用apt-get安裝,其次是pip ,最後纔是yum。不要問爲什麼,踩坑踩得。另外,儘量用supervisord 3.x以上的版本,2.x版本出問題概率大;
supervisord的日誌在 /var/log/supervisor/supervisord.log,啓動失敗一般能再這裏找到有用的信息
常用命令
啓動守護進程:supervisord -c /etc/supervisor/supervisord.conf
重載配置:supervisorctl reload
具體報錯分析
下面是三種常見的通用報錯:

第一類:
報錯信息: 
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: <string> line: 1

解決辦法: 
這個可能有多種原因,可能是已經啓動過了也可能是沒權限,解決步驟如下: 
1. 先要確認是否已經啓動過了:’ps -ef | grep supervisord’ 
2. 如果有的話先kill掉 
3. 運行下面命令: 
sudo touch /var/run/supervisor.sock 
sudo chmod 777 /var/run/supervisor.sock 

4. 再嘗試重新啓動:supervisord -c /etc/supervisord.conf(如果沒有文件找個別人的配置拷貝過來或者運行echo_supervisord_conf > /etc/supervisord.conf)

第二類:
報錯信息: 
Error: .ini file does not include supervisorctl section

解決辦法: 
又是一個權限問題的,步驟: 
1. 先確保supervisord.conf中有[supervisord],[supervisorctl]有這兩個基本模塊,還有[program:XXX]自己程序的配置(可以在supervisord.conf也可以在/etc/supervisor/*.ini中) 
2. 最關鍵的兩個命令:chmod +x /usr/bin/supervisord 
chmod +x /usr/bin/supervisorctl 
chmod +x /etc/supervisord.conf主要是把把相關文件都授權了 
3. 把supervisord殺掉後再次啓動supervisord

第三類:
報錯信息: 
Exited too quickly (process log may have details)

如果前面的問題都解決了,但還是會遇到這個問題,恭喜你已經離勝利很近了,起碼supervisord本身已經沒什麼問題了^_^

解決辦法: 
1. 先確認[program:XXX]中自己的程序的command=<啓動命令>和 directory=<運行命令的路徑>沒有問題,python是不是用的自己要的環境的python(比如虛擬環境的),log文件的文件夾是不是已經創建(沒創建的話supervisor沒權限生成log文件),以及改log文件是不是授權給所有用戶了(可參考前面的解決辦法chmod +x aaaaa.log) 
2. 確保用上面的配置中的command在指定路徑可以直接運行不會報錯,這時候一般就不會有什麼問題了。這時候tail你自己的log文件一般就能看到log信息,啓動失敗報錯的信息也會在你的log文件中,照着解決後supervisorctl reload就好了。 
3. 如果上面的命令確保可以跑,但還是沒法正常運行,也看不到自己程序的報錯(不然你就能根據報錯解決問題了),那麼恭喜,你遇到了跟我一樣的情況。我的解決辦法很詭異,嘗試把[program:XXX]中的名字換成了一個跟啓動命令不一樣的另一個名字(不要太短),reload之後居然就可以跑了。。。。嗯,很不合常理,但是對我來說確實管用了。

可參考文章: 
詳解supervisor進程管理 
supervisor 進程管理
--------------------- 
作者:kkevinyang 
來源:CSDN 
原文:https://blog.csdn.net/kkevinyang/article/details/80539940 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章