supervisor是乙個c/s系統,它允許使用者在類unix系統上監控和管理一系列的程序。你可以把乙個程序以daemon的形式用supervisor來管理。
使用pip來安裝supervisor:
[root@test1 ~]# pip install supervisor
如果centos系統中沒用安裝pip,可以通過如下命令安裝pip:
[root@test1 ~]# yum -y install python-pip
supervisor的配置檔案需要手動執行命令來生成,如下:
[root@test1 ~]# echo_supervisord_conf > /etc/supervisord.conf
command=/bin/cat # 啟動程式時執行的命令;
directory=/tmp # 執行目錄,若有/home/test/test1.py,將directory設定成/home/test,則command只需設定成python test1.py。否則command必須設定成絕對路徑;
process_name=%(program_name)s # 程序啟動,使用program name作為程序名,預設值;
autostart=true # 隨supervisor啟動一起啟動;
startsecs=1 # 等待多長時間後認為程式啟動成功,預設為1;
startretries=3 # 啟動失敗時的重試次數,預設為3;
user=root # 以root身份執行程式;
priority=999 # 優先順序。值越高,最後啟動,最先被關閉,預設值999。
supervisor有兩個可執行程式 :supervisord 和 supervisorctl。
使用supervisor管理乙個python flask程式hello.py:
[program:flasky]
directory=/opt/flasky/
command=/opt/flasky/venv/bin/python hello.py runserver --host 192.168.1.101 -p 8080
autostart=true
startsecs=10
startretries=2
user=root
stderr_logfile=/tmp/flasky-error.log
stdout_logfile=/tmp/flasky-error.log
[root@test1 ~]# /usr/bin/supervisord -c /etc/supervisord.conf
[root@test1 ~]# /usr/bin/supervisorctl status
flasky starting
[root@test1 ~]# /usr/bin/supervisorctl status
flasky running pid 46778, uptime 0:00:10
[root@test1 ~]# /usr/bin/supervisorctl status
flasky running pid 46778, uptime 0:00:13
supervisorctl status # 檢視supervisor管理程序的狀態;
supervisorctl stop programname # 用來關閉某個程序,programname指上例中的flasky;
supervisorctl start programname # 用來啟動某個程序;
supervisorctl restart programname # 用來重啟某個程序;
supervisorctl stop all # 關閉所有的程序;
supervisorctl reload # 停止所有程序,載入最新的配置檔案,並根據最新的配置啟動、管理程序;
supervisorctl update # 根據最新的配置檔案,啟動新配置的程序或重啟配置有變化的程序,沒有改動過的程序不會受到影響;
supervisorctl shutdown # 關閉supervisor服務。
error: , : file:
這時可以在執行supervisorctl時通過-c選項指定配置檔案的位置:
[root@test1 ~]# /usr/bin/supervisorctl -c /etc/supervisord.conf status
使用supervisor 管理swoft程序
專案中遇到有些指令碼需要通過後台程序執行,保證不被異常中斷,之前都是通過nohup screen來實現,帶著能否做乙個start stop restart reload的服務啟動的想法找到裡supervisor。關於supervisor的介紹在網上大致搜尋總結如下 supervisor是用pytho...
使用supervisor管理lnmp
supervisor是用python開發的乙個client server服務,是linux unix系統下的乙個程序管理工具,不支援windows系統。它可以很方便的監聽 啟動 停止 重啟乙個或多個程序。用supervisor管理的程序,當乙個程序意外被殺死,supervisort監聽到程序死後,會...
supervisor程序管理簡單使用
好久沒寫部落格了,本人喜歡私下研究和總結技術,但是並不太喜歡發表供給其他人,使用程序管理部署celery分布式爬蟲專案已經使用了很久了,今天記錄下使用過的技術。希望以後能常寫部落格。簡單介紹 supervisor是乙個程序控制系統,python語言開發,目前只支援python2.7.可以監控可控制程...