supervisor Python程序管理工具

2021-07-26 17:55:51 字數 1630 閱讀 8076

supervisor是乙個程序管理工具,官方的說法

用途就是有乙個程序需要每時每刻不斷的跑,但是這個程序又有可能由於各種原因有可能中斷。當程序中斷的時候我希望能自動重新啟動它,此時,我就需要使用到了supervisor

這個工具主要就兩個命令:

supervisord : supervisor的伺服器端部分,啟動supervisor就是執行這個命令

supervisorctl:啟動supervisor的命令列視窗。

安裝(centos):

# yum install python-setuptools

# easy_install supervisor

然後通過python安裝:

# tar zxf supervisor-3.1.3.tar.gz

# cd supervisor

# python setup.py install

下面來乙個示例,用web.py寫乙個hello的程式:

這個時候可以直接啟動這個程式了,下面來配置supervisor,加入管理。修改supervisord.conf,加入如下片段:

command=python /home/smallfish/hello.py

autorstart=true

stdout_logfile=/home/smallfish/hello.logdirectory=/srv/www

user=www-data

上面的意思應該很容易懂,program後面跟服務的名稱,command是程式的執行路徑,autorstart是表示自動啟動,stdout_logfile是捕獲標準輸出

directory是程序的當前目錄,user是程序執行的使用者身份。

配置引數

;command=/bin/echo; 		supervisor啟動時將要開啟的程序。相對或絕對路徑均可。若是相對路徑則會從supervisord的$path變中查詢。命令可帶引數。

;priority=999 指明程序啟動和關閉的順序。低優先順序表明程序啟動時較先啟動關閉時較後關閉。高優先順序表明程序啟動時啟動時較後啟動關閉時較先關閉。

;autostart=true 是否隨supervisord啟動而啟動

;autorestart=true 程序意外退出後是否自動重啟

;startsecs=10 程序持續執行多久才認為是啟動成功

;startretries=3 重啟失敗的連續重試次數

;exitcodes=0,2 若autostart設定為unexpected且監控的程序並非因為supervisord停止而退出,那麼如果程序的退出碼不在exitcode列表中supervisord將重啟程序

;stopsignal=quit 殺程序的訊號

;stopwaitsecs=10 向程序發出stopsignal後等待os向supervisord返回sigchild 的時間。若超時則supervisord將使用sigkill殺程序

程序管理工具

程序管理 pstree作用是以程序樹的形式顯示程序 例如 pstree 8123 顯示程序名不顯示各個程序號 pstree p 8123 顯示程序名稱及各級程序的程序號 ps作用是顯示當前所有執行程序的詳細資訊 例如 ps aux 顯示所有包含其他使用者的行程 ps aux 選項 a 顯示包括所有終...

守護程序管理工具

1.文字程序管理工具 ntsysv是乙個使用者管理自動執行的守護程序的文字使用者介面工具。2.命令列介面 cli 工具 可以使用chkconfig命令檢查,設定系統的各種服務。此命令實際上是通過操作 etc rc 0 6 d目錄下的符號鏈結檔案對系統的各種服務進行管理。chkconfig命令具有如下...

程序管理工具Supervisord

在 web 應用部署到線上後,需要保證應用一直處於執行狀態,在遇到程式異常 報錯等情況,導致 web 應用終止時,需要保證程式可以立刻重啟,繼續提供服務。所以,就需要乙個工具,時刻監控 web 應用的運 況,管理該程序。supervisor 就是解決這種需求的工具,可以保證程式崩潰後,重新把程式啟動...