Supervisor 安裝配置


Supervisor的簡介

Supervisor是一個客戶端/服務器系統,允許其用戶控制類似UNIX的操作系統上的許多進程。它可以很方便的監聽、啟動、停止、重啟一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死后,會自動將它重新拉起,很方便的做到進程自動恢復的功能,不再需要自己寫shell腳本來控制

 

Supervisor的安裝

 1)安裝supervisor

pip install supervisor --user

 2)  創建配置文件supervisord.conf (建議在root用戶下進行,如果之前有機器再用,你可以偷個懶,直接把supervisord.conf文件考過來就可以)

 echo_supervisord_conf > supervisord.conf

 心得:我在部署這一步的時候很奇怪,在root用戶下無論怎樣執行  pip install supervisor --user這一步,都說  supervisor不存在,具體報錯忘記截圖了然后我就去了admin用戶下,果然,在admin用戶下執行就沒問題,默認生成的supervisord.conf在admin的家目錄下。但是為了不會出現權限問題,我們還是在root用戶下就行吧。

3)關於/etc/supervisord.conf 的配置

圖中紅線框起來的位置你需要提前創建否則會報各種錯誤

關於這個報錯我參考了這篇文章:https://blog.csdn.net/kkevinyang/article/details/80539940

 

4)然后執行supervisord -c  /etc/supervisord.conf  ,如果出現報錯-bash: supervisord: command not found並且你應經執行過 pip install supervisor --user,你那么你需要自己找一下這個命令的路勁,他可能在admin用戶的路徑之下,所以執行

[root@test-hadoop01 ~]# which supervisord
/usr/bin/which: no supervisord in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/cronolog/sbin:/usr/local/java/bin:/root/bin)
[root@test-hadoop01 ~]# cd /
[root@test-hadoop01 /]# find -name [root@test-hadoop01 ~]# which supervisord
find: paths must precede expression: ~]#
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
[root@test-hadoop01 /]# find -name supervisord
./root/.local/share/Trash/files/cloudera-manage/cm-5.16.1/lib64/cmf/agent/build/env/bin/supervisord
./root/.local/bin/supervisord
./opt/cloudera-manager/cm-5.16.1/lib64/cmf/agent/build/env/bin/supervisord
find: ‘./proc/13398’: No such file or directory
./home/admin/.local/bin/supervisord

這里就可以發現supervisord命令藏在/home/admin/.local/bin/這個目錄之下,所以執行的時候加上全路徑就可以

/home/admin/.local/bin/supervisord -c  /etc/supervisord.conf   其實這里還有坑你的python可能版本不對我在直接執行的時候會出現用python2執行的情況‘,我看了一下原來的機器,用的是python執行的,所以我又在執行命令中加了python的全目錄’

/usr/bin/python /home/admin/.local/bin/supervisord -c /etc/supervisord.conf

執行完以上命令以后我們可以查看一下是否啟動成功

[root@test-hadoop01 /]# ps -ef |grep supervisord
root 5237 1 0 Oct30 ? 00:03:42 /usr/bin/python /home/admin/.local/bin/supervisord -c /etc/supervisord.conf #此處可以看出命令已經啟動成功
root 15985 11736 0 11:04 pts/2 00:00:00 grep --color=auto supervisord
root 29331 1 0 Oct25 ? 00:04:46 /opt/cloudera-manager/cm-5.16.1/lib64/cmf/agent/build/env/bin/python /opt/cloudera-manager/cm-5.16.1/lib64/cmf/agent/build/env/bin/supervisord
[root@test-hadoop01 /]#

關於這個報錯我參考了這篇文章:https://blog.csdn.net/kkevinyang/article/details/80539940

 error: <class 'socket.error'>, [Errno 2] No such file or directory: file: <string> line: 1

Error: .ini file does not include supervisorctl section

Exited too quickly (process log may have details) 

CRIT Server 'unix_http_server' running without any HTTP authentication checking

Unlinking stale socket /var/run/supervisor/supervisor.sock

解決方案:執行以下命令
unlink /var/run/supervisor/supervisor.sock

這四個解決方式都是在我上文中有體現的,按照我說的做都是可以避免的。

 最后給大家推薦一篇關於supervisor的博客 他寫的非常詳細,如果我的博客沒能解決您的困惑您可以去他那看一下

https://www.cnblogs.com/ruanraun/p/supervisor.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM