【轉載】http://www.51bbo.com/archives/2120html
Supervisor是一個進程管理工具,官方的說法python
用途就是有一個進程須要每時每刻不斷的跑,可是這個進程又有可能因爲各類緣由有可能中斷。當進程中斷的時候我但願能自動從新啓動它,此時,我就須要使用到了Supervisor服務器
這個工具主要就兩個命令:工具
supervisord : supervisor的服務器端部分,啓動supervisor就是運行這個命令ui
supervisorctl:啓動supervisor的命令行窗口。命令行
安裝(Centos):rest
- # yum install python-setuptools
- # easy_install supervisor
- 若是easy_install很差使就從官方下載:
- 而後經過python安裝:
- # tar zxf supervisor-3.1.3.tar.gz
- # cd supervisor
- # python setup.py install
成功安裝後能夠登錄python控制檯輸入import supervisor 查看是否能成功加載。htm
生成配置文件(supervisord.conf):
echo_supervisord_conf > /etc/supervisord.conf進程
修改配置文件:
在supervisord.conf最後增長(分號後邊的表示註釋,能夠不寫):rem
- [program:bandwidth]
- command=python26 /usr/local/bin/bandwidth.sh ;須要執行的命令wd)
- user =root ;(default is current user , required if root)
- autostart=true ;start at supervisord start (default: true)
- autorestart=true ;whether/when to restart (default: unexpected)
- startsecs=3 ;number of secs prog must stay running ( def . 1)
- stderr_logfile=/tmp/bandwidth_err.log ;redirect proc stderr to stdout (default false) 錯誤輸出重定向
- stdout_logfile=/tmp/bandwidth.log ;stdout log path, NONE for none; default AUTO, log輸出
- (更多配置說明請參考:http://supervisord.org/configuration.html)
運行命令:
supervisord -c /etc/supervisord.conf //啓動supervisor
supervisorctl //打開命令行
- [root @iZ2365j7l5bZ bin]# supervisorctl status
- bandwidth RUNNING pid 2423 , uptime 0 : 06 : 35
- [root @iZ2365j7l5bZ bin]# supervisorctl help
- default commands (type help <topic>):
- =====================================
- add clear fg open quit remove restart start stop update
- avail exit maintail pid reload reread shutdown status tail version
ctl中: help //查看命令
ctl中: status //查看狀態
另外有一個坑須要注意:若是修改了 /etc/supervisord.conf ,須要執行 supervisorctl reload 來從新加載配置文件,不然不會生效。。。