1. 安裝:pip install supervisor
2. 重定向預設配置:echo_supervisord_conf > /etc/supervisord.conf
3. 修改配置檔案目錄,修改tmp目錄
4. 啟動服務:supervisord -c /etc/supervisord.conf
檢視supervisord是否運作:
ps -aux|grep supervisord
5. 項目配置
6. supervisorctl的使用
更新新的配置到supervisord:supervisorctl update
重新啟動配置中的所有程式:supervisorctl reload
啟動單個任務程序:supervisorctl start task
關閉單個任務程序:supervisorctl stop task
重新開機單個任務程序:supervisorctl restart task
重新開機所有程序:supervisorctl restart all
關閉所有程序:supervisorctl stop all
讀取有更新(增加)的配置檔案,不會啟動新添加的程式:supervisorctl reread
檢視程序狀态:supervisorctl status
報錯:unix:///var/run/supervisor/supervisor.sock refused connection
解決:supervisord -c /etc/supervisord.conf
配置檔案:
mkdir /etc/supervisor
Django啟動配置檔案(例如: 項目名稱_runserver.conf)
[program:項目名稱_runserver]
#environment=CLIENT_LOCALE=zh_CN.UTF-8,LD_LIBRARY_PATH=/opt/IBM/Informix_Client-SDK/lib:/opt/IBM/Informix_Client-SDK/lib/esql:/opt/IBM/Informix_Client-SDK/lib/cli
#environment=INFORMIXDIR=/opt/IBM/Informix_Client-SDK
environment=DB_LOCALE=zh_CN.UTF-8
#environment=INFORMIXSQLHOSTS=/home/sqlhosts
environment=LC_ALL="zh_CN.UTF-8"
environment=LANG="zh_CN.UTF-8"
environment=LANGUAGE="zh_CN.UTF-8"
directory=/usr/local/project/項目名稱/
command=gunicorn 項目名稱.wsgi -b 127.0.0.1:18888 --access-logfile /var/log/gunicorn_out.log --error-logfile /var/log/gunicorn_error.log -w 4
path=/usr/local/project/項目名稱/
autostart=true
autorestart=true
startretries=10
exitcode=0
stopsignal=kill
stopwaitsecs=10
user=root
redirect_stderr=true
stdout_logfile=/tmp/dtmp_runserver.log
stopasgroup=true
killasgroup=true
nginx.conf
[program:nginx]
command=nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
autostart=true
autorestart=true
startretries=10
exitcode=0
stopsignal=kill
stopwaitsecs=10
user=root
redirect_stderr=true
stopasgroup=true
killasgroup=true
task.conf
[program:taskinfo]
command=/usr/bin/python /usr/local/project/項目名稱/manage.py task
directory=/usr/local/project/項目名稱/
autostart=true
autorestart=true
startretries=10
exitcode=0
stopsignal=kill
stopwaitsecs=10
user=root
redirect_stderr=true
stopasgroup=true
killasgroup=true
stdout_logfile=/var/log/task_info.log
參考文檔:
https://www.cnblogs.com/zhaijihai/p/11460502.html