supervisor是py2下的一個web管理工具html
python2版本:
使用py2的pip工具進行安裝
pip install supervisorpython
安裝完成以後多了三個命令
supervisord
supervisorctl
echo_supervisord_confios
在centos下默認在etc下沒有生成supervisor的配置文件目錄web
mkdir /etc/supervisor/supervisord.d/ -p echo_supervisord_conf > /etc/supervisord.conf 生成supervisor的主配置文件 /usr/bin/supervisord -c /etc/supervisord.conf 按照指定的配置文件啓動進程
根據需求修改supervisord.conf最後的includeshell
經常使用命令 supervisorctl 進入交互界面 supervisorctl status 查看被監控進程狀態 supervisorctl stop all 關閉被監控的進程 supervisorctl start all 啓動被監控的進程 supervisorctl start program-name 其中program-name爲配置文件[program:xx]中的xx supervisorctl stop program-name 其中program-name爲配置文件[program:xx]中的xx supervisorctl restart all 重啓被監控的進程 supervisorctl reatart program-name 重啓某一進程,program-name爲[program:xx]中的xx supervisorctl shutdown 關閉supervisord服務端 supervisorctl reload 從新加載配置文件
將supervisor加入到開機自啓動服務中vim
1 利用/etc/rc.local echo "/usr/bin/supervisord -c /etc/supervisord.conf" >> /etc/rc.local /etc/rc.local是/etc/rc.d/rc.local的軟鏈接 若是開機啓動不生效,則首先須要檢查下/etc/rc.d/rc.local是否具備可執行權限 2 加入systemctl管理 編輯配置文件 vim /lib/systemd/system/supervisor.service [Unit] Description=supervisor After=network.target [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf #指明啓動中止重載的命令 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target 上述文件編寫後,執行以下命令便可: systemctl enable supervisor.service 加入開機自啓動服務 systemctl daemon-reload 從新載入systemd,掃描新的或有變更的單元(必要步驟) chmod 766 /lib/systemd/system/supervisor.service 修改文件權限
一個Linux/Unix系統上的進程監控工具
一個Python開發的通用的進程管理程序
能夠管理和監控Linux上面的進程
能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓
不過同daemontools同樣,它不能監控daemon進程centos
- supervisor則能夠完美的解決這些問題。supervisor管理進程,就是經過fork/exec的方式把這些被管理的進程,看成supervisor的子進程來啓動。這樣的話,咱們只要在supervisor的配置文件中,把要管理的進程的可執行文件的路徑寫進去就OK了
- 被管理進程做爲supervisor的子進程,當子進程掛掉的時候,父進程能夠準確獲取子進程掛掉的信息的,因此固然也就能夠對掛掉的子進程進行自動重啓,固然重啓仍是不重啓,也要看你的配置文件裏面有木有設置autostart=true了
- supervisor經過INI格式配置文件進行配置
supervisordsocket
主進程,負責管理進程的server,它會根據配置文件建立指定數量的應用程序的子進程,管理子進程的整個生命週期,對crash的進程重啓,對進程變化發送事件通知等。同時內置web server和XML-RPC Interface,輕鬆實現進程管理。。該服務的配置文件在/etc/supervisor/supervisord.conf。工具
supervisorctl命令行
客戶端的命令行工具,提供一個相似shell的操做接口,經過它你能夠鏈接到不一樣的supervisord進程上來管理它們各自的子程序,命令經過UNIX socket或者TCP來和服務通信。用戶經過命令行發送消息給supervisord,能夠查看進程狀態,加載配置文件,啓停進程,查看進程標準輸出和錯誤輸出,遠程操做等。服務端也能夠要求客戶端提供身份驗證以後才能進行操做。
Web Server
superviosr提供了web server功能,可經過web控制進程(須要設置[inethttpserver]配置項)
XML-R- #supervisor
一個Linux/Unix系統上的進程監控工具
一個Python開發的通用的進程管理程序
能夠管理和監控Linux上面的進程
能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓
不過同daemontools同樣,它不能監控daemon進程
- supervisor是python編寫的,能夠用easy_install、pip均可以安裝
yum install python-setuptools
easy_install pip
pip install supervisor- 配置
在supervisord.conf中設置經過web能夠查看管理的進程,加入如下代碼(默認即有,取消註釋便可)
[inet_http_server]
port=9001
username=user
password=123- 啓動
supervisord -c /etc/supervisord.conf
或者 systemctl start supervisord.service- 查看是否處於監聽狀態
lsof -i:9- #supervisor
一個Linux/Unix系統上的進程監控工具
一個Python開發的通用的進程管理程序
能夠管理和監控Linux上面的進程
能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓
不過同daemontools同樣,它不能監控daemon進程
查看supervisorctl支持的命令
supervisorctl help
查看當前運行的進程列表
原文地址
http://www.javashuo.com/article/p-cwmkvehr-e.html
看是否處於監聽狀態
lsof -i:9001