天天看點

supervisor管理Django程序

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