Supervisor詳解
跑程序時無聊,寫一篇博客
案例
- django網站部署
[program:lock]
command=/root/lock/venv/bin/python /root/lock/manage.py runserver 127.0.0.1:80 ; 被監控的進程路徑
directory=/root/lock
autostart=true ; 隨着supervisord的啓動而啓動
autorestart=true ; 自動重啓,當然要選上了
startretries=10 ; 啓動失敗時的最多重試次數
exitcodes=0 ; 正常退出代碼
stopsignal=KILL ; 用來殺死進程的信號
stopwaitsecs=10 ; 發送SIGKILL前的等待時間
redirect_stderr=true ; 重定向stderr到stdout
stdout_logfile=/root/log ; 指定日誌文件
stopasgroup=true
killasgroup=true
- 普通進程
[program:proxy]
command=/usr/bin/proxy ; 被監控的進程路徑
autostart=true ; 隨着supervisord的啓動而啓動
autorestart=true ; 自動重啓,當然要選上了
startretries=10 ; 啓動失敗時的最多重試次數
exitcodes=0 ; 正常退出代碼
stopsignal=KILL ; 用來殺死進程的信號
stopwaitsecs=10 ; 發送SIGKILL前的等待時間
redirect_stderr=true ; 重定向stderr到stdout
stdout_logfile=/root/log ; 指定日誌文件
stopasgroup=true
killasgroup=true
解析
從上面可以看出部署一個supervisor管理的進程是十分方便簡單的,之後的事就交給supervisor處理了。這裏的command(shell命令)中所有的路徑都要用絕對路徑,即使在環境變量中,其它的參數問題不大。