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.log
directory=/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 就是解決這種需求的工具,可以保證程式崩潰後,重新把程式啟動...