linux的後台程序執行有好幾種方法,例如nohup,screen等,但是,如果是乙個服務程式,要可靠地在後台執行,我們就需要把它做成daemon,最好還能監控程序狀態,在意外結束時能自動重啟。
supervisor就是用python開發的一套通用的程序管理程式,能將乙個普通的命令列程序變為後台daemon,並監控程序狀態,異常退出時能自動重啟。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1.
安裝
pip install supervisor
# supervisor目前只支援python2,但是作為容器來說,並不影響監控程式是python3的程式
2.
生成配置檔案
echo_supervisord_conf > supervisord.conf
#在當前目錄下生成
3.
啟動supervisor
supervisord
-
c supervisord.conf
# -c 用來指定配置檔案
4.
其他常用命令
supervisorctl
-
c supervisord.conf
# 啟動命令列模式,命令列模式使用的配置檔案注意一定要和啟動supervisor時的配置檔案一致
help
: 幫助
update : 重新讀取配置檔案,並重啟
restart
all
: 重啟所有程序,不會重新讀取配置檔案
start
all
: 啟動所有程序
start : 啟動某個程序
status : 獲取所有程序資訊
stop
all
: 停止所有程序
stop : 停止某個程序
常用配置, ; 代表注釋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
;
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
; uwsgi supervisor
;
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
[program:uwsgi] ; :後是自定義的名稱,在supervisorctl下可以通過 start uwsgi 來啟動該程序
command
=
/
path
/
to
/
bin
/
uwsgi
-
-
die
-
on
-
term
-
-
ini
/
path
/
to
/
uwsgi.ini ; 執行的命令,即在命令列中是如何使用該命令的
-
-
die
-
on
-
term keep uwsgi cpu rate low;
numprocs
=
1
; 啟動的程序個數,可以同時啟動多個程序
stdout_logfile
=
/
var
/
log
/
uwsgi
/
out.log ; 輸出日誌位置,目錄需要建立,並且如果不是root使用者執行需要更改目錄許可權 chown
-
r username:username
/
var
/
log
/
uwsgi
/
out.log,下同
stderr_logfile
=
/
var
/
log
/
uwsgi
/
err.log ; 錯誤日誌位置
autostart
=
true ; 自動啟動
autorestart
=
true ; 自動重啟
priority
=
997
; 啟動的優先順序,數字越大,級別越高,如該程序需要比其他程序先啟動,則優先順序則設定為更高
supervisor使用教程
在使用supervisor前遇到一些問題,啟動時提示 這是因為我通過apt get 安裝的,是python2使用,但是我的是python3 先檢查git是否已經安裝 git version 如果沒安裝就使用 apt get install git 然後安裝supervisor pip3 instal...
supervisor程序管理簡單使用
好久沒寫部落格了,本人喜歡私下研究和總結技術,但是並不太喜歡發表供給其他人,使用程序管理部署celery分布式爬蟲專案已經使用了很久了,今天記錄下使用過的技術。希望以後能常寫部落格。簡單介紹 supervisor是乙個程序控制系統,python語言開發,目前只支援python2.7.可以監控可控制程...
Supervisor 簡單強大的程序管理工具
supervisor是乙個linux下用python開發的程序管理工具,提供了web管理介面,通過配置需要監控的程序,可以很方便的監控並管理程序,更厲害的是,當監控的程序因為各種原因斷開的時候,能自定重啟該程序。ubuntu下安裝非常方便 sudo apt get install superviso...