Supervisor 是一個(gè) Python 開(kāi)發(fā)的 client/server 系統(tǒng),可以管理和監(jiān)控類 UNIX 操作系統(tǒng)上面的進(jìn)程。它可以同時(shí)啟動(dòng),關(guān)閉多個(gè)進(jìn)程,使用起來(lái)特別的方便。
supervisord(server 部分):讀入配置文件并管理子進(jìn)程,supervisord會(huì)自動(dòng)將應(yīng)用程序的進(jìn)程轉(zhuǎn)為守護(hù)進(jìn)程,這樣即使你退出shell也沒(méi)影響。注意,如果一個(gè)進(jìn)程已經(jīng)是守護(hù)進(jìn)程了,那用supervisord監(jiān)控時(shí),會(huì)報(bào)如下錯(cuò)誤,因此用supervisor監(jiān)控的程序,必須以前臺(tái)進(jìn)程的方式啟動(dòng)。
FATAL Exited too quickly (PRocess log may have details)supervisorctl(client 部分):命令行客戶端,用戶可以通過(guò)它與不同的 supervisord 進(jìn)程聯(lián)系,獲取子進(jìn)程的狀態(tài),如
supervisorctl reread ; 重載配置文件,并不重啟任何進(jìn)程supervisorctl reload ; 重新啟動(dòng)supervisord進(jìn)程supervisorctl stop(start, restart) xxx,停止(啟動(dòng),重啟)某一個(gè)進(jìn)程(xxx);supervisorctl update: 根據(jù)最新的配置文件,啟動(dòng)新配置或有改動(dòng)的進(jìn)程,配置沒(méi)有改動(dòng)的進(jìn)程不會(huì)受影響而重啟;安裝完成后,會(huì)生成三個(gè)執(zhí)行程序:supervisortd、supervisorctl、echo_supervisord_conf,其中echo_supervisor_conf 是生成supervisor 配置文件的進(jìn)程。
Supervisor只能管理非daemon的進(jìn)程,也就是說(shuō)Supervisor不能管理守護(hù)進(jìn)程。否則提示Exited too quickly (process log may have details)異常。因此我們需要將一些daemon進(jìn)程運(yùn)行的程序,進(jìn)行一下處理。
tomcat 的處理: /opt/tomcat/bin/catalina.sh runNginx 處理:增加 daemon off 至nginx.conf 的全局配置項(xiàng)中在conf文件的最后,添加如下內(nèi)容
[program:nginx]command=/usr/sbin/nginx -c /etc/nginx/nginx.confnumprocs=1autorestart=trueredirect_stderr=truestdout_logfile=/var/log/supervisor-nginx.logstderr_logfile=/var/log/supervisor-nginx.errloglevel=info以上內(nèi)容只介紹了管理一個(gè)nginx進(jìn)程的情況,如果是多個(gè)進(jìn)程,建議Include 進(jìn)來(lái),進(jìn)行分類配置,具體可以參看 supervisord.conf 文件中
;[include];files = relative/directory/*.ini針對(duì)以上進(jìn)行修改,指定一個(gè)放配置文件的目錄。
新聞熱點(diǎn)
疑難解答
圖片精選