1. 程式人生 > >supervisor安裝和配置

supervisor安裝和配置

創建 最小值 異常 tar lin npr 執行 update 可選值

有時候,我們需要某些程序或者進程在後天穩定運行。

nohup  java -jar .....jar  &

 但是,可能服務器會因為某些原因down掉,或者因為某個同時誤殺了進程,不穩定性太多。

於是就認識了supervisor。

而且越用越喜歡,這家夥集監控,自動重啟為一身啊,而且輕量級。只需要讓supervisor開機自啟就解決一切問題

一:素質四連

wget https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz
?
tar -xf supervisor-3.3.4.tar.gz -C /usr/local/ (-C參數 是解壓到/usr/local/ 此路徑下)
?
cd /usr/local/supervisor-3.3.4/ (進入解壓目錄 找到setup.py 腳本 執行)
?
python setup.py install

二:配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf 

(配置文件的路徑也可以放別的地方不一定要放在etc下,但如果放別的地方,在啟動服務的時候要指定要在啟服務程序的 後面加參數"-c " 後接配置文件的的路徑才可以,如果放在etc下系統會自動查到到配置文件的)

配置文件詳解:

[unix_http_server]
file=/usr/local/supervisor-3.3.4/supervisor.sock   ;UNIX socket 文件,supervisorctl 會使用
;chmod=0700                 ;socket文件的mode,默認是0700
;chown=nobody:nogroup       ;socket文件的owner,格式:uid:gid
?
[inet_http_server]         ;HTTP服務器,提供web管理界面
port=0.0.0.0:9001        ;Web管理後臺運行的IP和端口,如果開放到公網,需要註意安全性
username=user              ;登錄管理後臺的用戶名
password=123               ;登錄管理後臺的密碼
?
[supervisord]
logfile=/usr/local/supervisor-3.3.4/supervisord.log ;日誌文件,默認是 $CWD/supervisord.log
logfile_maxbytes=50MB        ;日誌文件大小,超出會rotate,默認 50MB,如果設成0,表示不限制大小
logfile_backups=10           ;日誌文件保留備份數量默認10,設為0表示不備份
loglevel=info                ;日誌級別,默認info,其它: debug,warn,trace
pidfile=/usr/local/supervisor-3.3.4/supervisord.pid ;pid 文件
nodaemon=false               ;是否在前臺啟動,默認是false,即以 daemon 的方式啟動
minfds=1024                  ;可以打開的文件描述符的最小值,默認 1024
minprocs=200                 ;可以打開的進程數的最小值,默認 200
?
[supervisorctl]
serverurl=unix:///usr/local/supervisor-3.3.4/supervisor.sock ;通過UNIX socket連接supervisord,路徑與unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通過HTTP的方式連接supervisord
?
;[program:tomcat] 是被管理的進程配置參數,tomcat是進程的名稱,原文用xx表示,tomcat是我要監控的對象
[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run ; 程序啟動命令
autostart=true       ; 在supervisord啟動的時候也自動啟動
startsecs=10         ; 啟動10秒後沒有異常退出,就表示進程正常啟動了,默認為1秒
autorestart=true     ; 程序退出後自動重啟,可選值:[unexpected,true,false],默認為unexpected,表示進程意外殺死後才重啟
startretries=3       ; 啟動失敗自動重試次數,默認是3
user=root          ; 用哪個用戶啟動進程,默認是root
priority=999         ; 進程啟動優先級,默認999,值小的優先啟動
redirect_stderr=true ; 把stderr重定向到stdout,默認false
stdout_logfile_maxbytes=20MB  ; stdout 日誌文件大小,默認50MB
stdout_logfile_backups = 20   ; stdout 日誌文件備份數,默認是10
; stdout 日誌文件,需要註意當指定目錄不存在時無法正常啟動,所以需要手動創建目錄(supervisord 會自動創建日誌文件)
stdout_logfile=stdout_logfile=/usr/local/tomcat/logs/catalina.out
stopasgroup=true     ;默認為false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=true     ;默認為false,向進程組發送kill信號,包括子進程
?
;包含其它配置文件
[include]
files = /etc/supervisor/conf.d/*.conf    ;可以指定一個或多個以.conf結束的配置文件,有的是以*.ini 結尾的,這個是自定義的 不影響;

  

? 添加多個進程的時候,可以include融合多個配置文件

[program:jenkins]
directory= /usr/local
command=/usr/java/jdk1.8.0_181/bin/java -jar jenkins.war
autostart=true       ; 在supervisord啟動的時候也自動啟動
startsecs=10         ; 啟動10秒後沒有異常退出,就表示進程正常啟動了,默認為1秒
autorestart=true     ; 程序退出後自動重啟,可選值:[unexpected,true,false],默認為unexpected,表示進程意外殺死後才重啟
startretries=3       ; 啟動失敗自動重試次數,默認是3
user=root          ; 用哪個用戶啟動進程,默認是root
priority=999         ; 進程啟動優先級,默認999,值小的優先啟動
redirect_stderr=true ; 把stderr重定向到stdout,默認false
stdout_logfile_maxbytes=20MB  ; stdout 日誌文件大小,默認50MB
stdout_logfile_backups = 20   ; stdout 日誌文件備份數,默認是10
stdout_logfile=/usr/local/nginx/logs/catalina.log
stopasgroup=true     ;默認為false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=true     ;默認為false,向進程組發送kill信號,包括子進程

  

三,啟動登錄

supervisord -c /etc/supervisor/supervisord.conf 

啟動完後 就可以瀏覽器輸入ip地址:9001 訪問了 登陸的時候配置文件裏有用戶名和密碼 默認配置的是用戶名:user 密碼123 ;

supervisord : 啟動supervisor
supervisorctl reload :修改完配置文件後重新啟動supervisor
supervisorctl status :查看supervisor監管的進程狀態
supervisorctl start 進程名 :啟動XXX進程
supervisorctl stop 進程名 :停止XXX進程
supervisorctl stop all:停止全部進程,註:start、restart、stop都不會載入最新的配置文件。
supervisorctl update:根據最新的配置文件,啟動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啟

  

四:設置開機自啟

在/etc/rc.local中加入: supervisord -c /etc/supervisor/supervisord.conf

可能會產生環境問題

? 可以使用絕對路勁。使用javahome/bin/java 啟動

supervisor安裝和配置