傳統的管理uwsgi服務:uwsgi配置:1. 通過shell指令碼來編寫start restart stop函式來控制
2. 比較麻煩,有時候控制寫的爛,還會出現意想不到的錯誤
supervisor進行管理
1. 可以批量管理多個uwsgi服務;
2. shell指令碼,nginx訪問,mysql等都能進行管理
3. 每個服務進行隔離,通過supervisorctl進行管理單個服務
4. supervisorctl對每個管理的服務進行restart start stop操作
5. 簡化了寫shell的煩惱
[root@linux-node01 ~]# cat /data/web/plantool/plt_uwsgi.ini安裝supervisor:[uwsgi]
socket=127.0.0.1:8011 # socket是ip:port模式
chdir=/data/web/plantool # django專案目錄
vacuum=true
master=true
workers=4 # 開啟的主程序個數
enable-threads=true
threads=10 # 開啟的執行緒個數
pidfile=/var/run/uwsgi8011.pid # uwsgi pid檔案
#daemonize=/var/log/uwsgi8011.log # 守護程序一定要注釋掉(關鍵)
memory-report=true
[root@linux-node01 ~]#
yum install supervisor配置,主要是開啟子配置:
[include]子配置內容:files = /etc/supervisor/conf.d/*.ini
[program:plantool]檢查執行狀態:command =/usr/local/bin/uwsgi /data/web/plantool/plt_uwsgi.ini ; 啟動命令,可以看出與手動在命令列啟動的命令是一樣的
autostart = true ; 在 supervisord 啟動的時候也自動啟動
stopsignal=quit
user=root
startsecs = 5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了
startretries = 3 ; 啟動失敗自動重試次數,預設是 3
autorestart = true ; 程式異常退出後自動重啟
redirect_stderr = true ; 把 stderr 重定向到 stdout,預設 false
stdout_logfile_maxbytes = 20mb ; stdout 日誌檔案大小,預設 50mb
stdout_logfile = /data/log/plantool_stdout.log
stderr_logfile = /data/log/plantool_err.log
[root@linux-node01 conf.d]# supervisorctl reloadrestarted supervisord
[root@linux-node01 conf.d]# supervisorctl status
plantool running pid 31682, uptime 0:07:53
[root@linux-node01 conf.d]# netstat -lnpt |grep 8011
tcp 0 0 127.0.0.1:8011 0.0.0.0:* listen 31682/uwsgi
[root@linux-node01 conf.d]# ps -aux |grep plant
warning: bad syntax, perhaps a bogus '-'? see /usr/share/doc/procps-3.2.8/faq
root 345 0.0 0.0 103264 880 pts/0 s+ 20:31 0:00 grep plant
root 31682 0.0 0.3 263572 28272 ? s 20:23 0:00 /usr/local/bin/uwsgi /data/web/plantool/plt_uwsgi.ini
root 31685 0.0 0.3 945848 25780 ? sl 20:23 0:00 /usr/local/bin/uwsgi /data/web/plantool/plt_uwsgi.ini
root 31686 0.0 0.3 945848 25776 ? sl 20:23 0:00 /usr/local/bin/uwsgi /data/web/plantool/plt_uwsgi.ini
root 31687 0.0 0.3 945848 25772 ? sl 20:23 0:00 /usr/local/bin/uwsgi /data/web/plantool/plt_uwsgi.ini
root 31688 0.0 0.3 945848 25768 ? sl 20:23 0:00 /usr/local/bin/uwsgi /data/web/plantool/plt_uwsgi.ini
[root@linux-node01 conf.d]#
Linux守護程序工具Supervisor
程序 process 是指正在執行的程式 是程式正在執行的乙個例項。它由程式指令,和從檔案 其它程式中讀取的資料或系統使用者的輸入組成。在linux中程序主要分為兩類,互動式程序和非互動式程序,而守護程序就是一種非互動式程序,它們在系統啟動時啟動,並作為服務執行。linux的後台程序執行有好幾種方法...
linux安裝 配置 使用supervisor
一 supervisor作用 實現每台機器上多個程序的簡單高效中心化管理,實現機器啟動時應用程序隨之啟動的目標。二 supervisor安裝 1.安裝easy install yum install python setuptools devel 2.安裝 supervisor easy insta...
Linux 程序管理工具 supervisor
linux 程序管理工具 supervisor supervisor簡介 在linux伺服器中,有時候我們需要乙個程序需要可靠的在後台執行,並且能夠監控程序狀態,在意外結束時能夠自動重啟等。此時就可以使用supervisor。supervisor 是使用python開發的一套通用的程序管理程式,能夠...