supervisor
是乙個類unix作業系統上的程序管理與監控工具,可以將命令列程序變成deamon
程序,並監控其狀態,在異常退出時可以自動啟動程序。更為詳細的介紹參見官網
supervisor元件:我們只介紹兩個重要的元件,supervisord
和supervisorctl
supervisord 主程序,它是負責管理程序的server,它根據配置我們的配置檔案通過fork/exec 的方式來建立子應用程式的子程序,管理其整個生命週期,對crash子程序進行重啟,子程序變化傳送事件通知等。supervisorctl 客戶端命令列工具,我們通過它來管理我們自己的應用程序 stop start restart update reload 等 ,這個命令列工具通過unix socket 或者tcp來和我們的supervisord進行通訊。
# 我們通過yum安裝,先按照epel源
yum install -y epel-release
# 安裝supervisor
yum install -y supervisor
安裝位置預設在
/usr/bin/supervisorctl
配置檔案預設在下面目錄
cd /etc/supervisord.d
[root@mypc01 ~
]# vim /etc/supervisord.conf
注意最後面有一行,表示引入副配置檔案
[include]
;分離的配置檔案,我們可以總是將我們應用的配置檔案放到單獨的目錄檔案下管理, 這樣配置清晰,下面是配置的分離配置檔案的路徑,supervisord會載入我們配置到對於檔案加 下的檔案
files =
/etc/supervisord.d/*.conf ; 匹配 /etc/supervisord.d/ 下所有以.conf 結尾的檔案
# 建立pid檔案
touch /var/run/supervisor/supervisord.pid
# 開機啟動
systemctl enable supervisord
# 啟動supervisord
systemctl start supervisord
# 檢視啟動狀態
systemctl status supervisord
# 檢視tcp埠是否在監聽中
netstat -antp |
grep 9001
# 如果看到9001 說明supervisord 已經正常工作
比如,利用supervisior
啟動乙個shell指令碼.
# 建立乙個配置檔案.以conf結尾
#一般改下前兩行就ok了
[root@mypc01 ~]
# vim /etc/supervisord.d/xx.conf
配置內容為
[program:access-flume] ; 自定義乙個名稱
stderr_logfile=/var/log/supervisor/access-flume.err ;錯誤日誌檔案
stdout_logfile=/var/log/supervisor/access-flume.log ;標準輸出日誌檔案,我們通過該檔案檢視執行日誌
stdout_logfile_maxbytes=10mb ; 標準輸出日誌檔案多大滾動一次
stdout_logfile_backups=10 ; 標準輸出日誌檔案最多備份多少個
user=root ; 以什麼使用者啟動
autostart=true ; 是否在supervisord啟動時,直接就啟動應用
autorestart=true ; crash 後是否自動重啟
startsecs=10 ;應用程序啟動多少秒之後,此時狀態如果是running狀態,就認為是成功
startretries=3 ; 當程序啟動失敗後,最大嘗試啟動的次數, 如果超過指定次數,應用會被標記為fail狀態
stopasgroup=true ; 是否停止由應用本身建立的子程序,此選項接受的停止訊號是stop訊號
killasgroup=true ; 是否停止由應用本身建立的子程序,此選項接受的停止訊號是sigkill訊號
redirect_stderr=false ; 如果是true,stderr的日誌會被寫入stdout日誌檔案中
啟動
# 讀取配置檔案
supervisorctl reread
# 更新啟動
supervisorctl update access-flume
# 檢視啟動狀態
supervisorctl status access-flume
# 如果想停止
supervisorctl stop access-flume
# 如果想再次啟動
supervisorctl start access-flume
# 注意一旦你修改了配置檔案內容,一定要先reread,然後 update 就可以了
其他程序或者指令碼類似的都可以交給supervisor
來管理.
一般 配置下command和program這兩個引數就夠了
supervisor快速應用
使用python開發的程序管理工具,監聽 啟動 停止 重啟乙個或多個程序。程序被kill後悔自動重啟,保證服務可用 安裝 yum install y supervisor 生成配置檔案 echo supervisord conf home op supervisord.conf 配置檔案,相互隔離 ...
安裝使用supervisor
yum install python setuptools easy install supervisor 測試安裝是否成功 echo supervisord conf 2.建立配置檔案 建立supervisor配置檔案目錄 etc supervisor mkdir m 755 p etc supe...
supervisor使用詳解
1.什麼是supervisor supervisor是用python寫的乙個程序管理工具,用來啟動,重啟,關閉程序。2.supervisor的安裝 pip install supervisor3.supervisor的配置檔案 supervisor安裝完畢後,會有乙個配置檔案supervisord....