linux 配置啟動supervisor詳細


參考自強學堂:https://code.ziqiangxuetang.com/django/django-nginx-deploy.html

1
例子中zqxt項目

 

安裝 supervisor 軟件包

1
( sudo ) pip  install  supervisor<br>或者<br>yum  install  supervisor

生成 supervisor 默認配置文件,比如我們放在 /etc/supervisord.conf 路徑中:

1
(sudo) echo_supervisord_conf >  / etc / supervisord.conf

打開 supervisor.conf 在最底部添加(每一行前面不要有空格,防止報錯):

1
2
3
4
5
6
7
[program:zqxt]
command = /path/to/uwsgi  --http :8003 --chdir  /path/to/zqxt  --module zqxt.wsgi
directory= /path/to/zqxt
startsecs=0
stopwaitsecs=0
autostart= true
autorestart= true

command 中寫上對應的命令,這樣,就可以用 supervisor 來管理了。

 

啟動 supervisor

( sudo ) supervisord -c  /etc/supervisord .conf

重啟 zqxt 程序(項目):

( sudo ) supervisorctl -c  /etc/supervisord .conf restart zqxt

啟動,停止,或重啟 supervisor 管理的某個程序 或 所有程序:

( sudo ) supervisorctl -c  /etc/supervisord .conf [start|stop|restart] [program-name|all]

 

以 uwsgi 為例,上面這樣使用一行命令太長了,我們使用 ini 配置文件來搞定,比如項目在 /home/tu/zqxt 這個位置,

在其中新建一個 uwsgi.ini 全路徑為 /home/tu/zqxt/uwsgi.ini

[uwsgi]
socket =  /home/tu/zqxt/zqxt .sock
chdir =  /home/tu/zqxt
wsgi- file  = zqxt /wsgi .py
touch -reload =  /home/tu/zqxt/reload
 
processes = 2
threads = 4
 
chmod -socket = 664
chown -socket = tu:www-data
 
vacuum =  true

注意上面的 /home/tu/zqxt/zqxt.sock ,一會兒我們把它和 nginx 關聯起來。

在項目上新建一個空白的 reload 文件,只要 touch 一下這個文件(touch reload) 項目就會重啟。

注意:不建議把 sock 文件放在 /tmp 下,比如 /tmp/xxx.sock (不建議)!有些系統的臨時文件是 namespaced 的,進程只能看到自己的臨時文件,導致 nginx 找不到 uwsgi 的 socket 文件,訪問時顯示502,nginx 的 access log 中顯示 unix: /tmp/xxx.sock failed

sudo  mkdir  -p  /tmp2/  &&  sudo  chmod  777  /tmp2/
然后可以用  /tmp2/zqxt .sock 這樣的路徑了

詳細參考 http://stackoverflow.com/questions/32974204/got-no-such-file-or-directory-error-while-configuring-nginx-and-uwsgi

 

修改 supervisor 配置文件中的 command 一行:

[program:zqxt]
command=/path/to/uwsgi --ini /home/tu/zqxt/uwsgi.ini
directory=/path/to/zqxt
startsecs=0

然后重啟一下 supervisor:

( sudo ) supervisorctl -c  /etc/supervisord .conf restart zqxt
或者
( sudo ) supervisorctl -c  /etc/supervisord .conf restart all


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM