原文鏈接
supervisor是使用Python編寫的進程管理軟件侈询,在實際開發(fā)中,一般用它來同時開始一批相關的進程,無論是Django的runserver還是直接管理Nginx牡昆、Apache等,都比較方便摊欠,這里是其使用方法:
安裝
# ubuntu
apt-get install supervisor
service supervisor restart
# centos
yum install supervisor
/etc/init.d/supervisord restart
使用
sudo easy_install supervisor
echo_supervisord_conf > supervisord.conf # 生成一個配置文件
sudo supervisord -c supervisord.conf # 使用該配置文件啟動supervisord
sudo supervisorctl # 進入命令行界面管理進程
設置一個進程
# 在supervisord.conf里面添加如下內(nèi)容
[program:frontend] # 進程名
command=/usr/bin/python manage.py runserver 0.0.0.0:8000 # 啟動該進程的命令
directory=/media/sf_company/frontend/frontend # 在執(zhí)行上面命令前切換到指定目錄
startsecs=0
stopwaitsecs=0
autostart=false
autorestart=false
user=root
stdout_logfile=/root/log/8000_access.log # 訪問日志
stderr_logfile=/root/log/8000_error.log # 錯誤日志
這樣就創(chuàng)建了一個進程丢烘,進程的名稱為frontend。
由于ubuntu上面supervisor的配置文件可以放在/etc/supervisor.d/*.ini
里面比較方便些椒,但是會出現(xiàn)一些錯誤播瞳。如果是單獨的ini文件,那么不僅要寫program
這個section還應該把supervisord
免糕、supervisorctl
兩個區(qū)塊都加上赢乓,哪怕不寫任何東西。
supervisorctl常用命令:
start name # 開始一個進程
stop name # 終止一個進程
status # 查看當前管理狀態(tài)
TroubleShooting
-
安裝過程出現(xiàn)
unix:///var/run/supervisor.sock no such file
:# 首先刪除通過apt-get安裝的supervisor sudo apt-get remove supervisor # 然后把相應的進程kill掉 sudo ps -ef | grep supervisor # 最后直接用easy_install安裝 sudo easy_install supervisor # 然后生成配置文件 sudo echo_supervisor_conf > /etc/supervisord.conf # 最后啟動 sudo supervisord sudo supervisorctl