目的:使用supervisor進行進程管理,方便使用。html
操做:python
> sudo apt-get install supervisor # 安裝supervisorweb
一、安裝完成後,/etc/supervisor/supervisord.conf 是supervisor的主要配置文件。安全
supervisor的配置文件默認是不全的,不過在大部分默認的狀況下,上面說的基本功能已經知足。服務器
supervisor的配置參數較多,詳細的配置及說明請百度。socket
注:分號(;)開頭的配置表示註釋ui
[unix_http_server]url
#項目名
[program:blog]
#腳本目錄
directory=/opt/bin
#腳本執行命令
command=/usr/bin/python /opt/bin/test.py
#supervisor啓動的時候是否隨着同時啓動,默認True
autostart=true
#當程序exit的時候,這個program不會自動重啓,默認unexpected
#設置子進程掛掉後自動重啓的狀況,有三個選項,false,unexpected和true。若是爲false的時候,不管什麼狀況下,都不會被從新啓動,若是爲unexpected,只有當進程的退出碼不在下面的exitcodes裏面定義的
autorestart=false
#這個選項是子進程啓動多少秒以後,此時狀態若是是running,則咱們認爲啓動成功了。默認值爲1
startsecs=1
#日誌輸出
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#腳本運行的用戶身份
user = zhoujy
#把 stderr 重定向到 stdout,默認 false
redirect_stderr = true
#stdout 日誌文件大小,默認 50MB
stdout_logfile_maxbytes = 20M
#stdout 日誌文件備份數
stdout_logfile_backups = 20spa
> supervisord # 啓動supervisor服務debug
注意:執行supervisord時出現supervisor error :Another program is already listening on a port that one of our HTTP servers is,說明你的supervisord已經啓動了,經過 ps -ef | grep supervisord 來查看進程,能夠kill他再從新起。
附上一些命令:
supervisord -c /etc/supervisord.conf # supervisor服務啓動
supervisorctl # 服務客戶端管理(在supervisorctl客戶端下help一下)
supervisorctl status //查看狀態
supervisorctl start web_server // 開啓一個進程(web_server=你配置中寫的程序名稱)
supervisorctl stop web_server //中止一個進程
supervisorctl restart web_server //重啓一個進程
supervisorctl reload # 從新啓動配置中的全部程序,更改了supervisor的配置後執行一下
supervisorctl reread // 從新加載配置,更改了進程配置後
supervisorctl update // 更新啓動列表,更改了進程配置後
參考:
https://www.cnblogs.com/xuezhigu/p/7660203.html
http://www.cnblogs.com/taek/p/8465393.html
........