安裝並使用supervisor守護程序監控

2022-09-07 04:54:08 字數 3985 閱讀 4502

1.前言

supervisor是乙個程序管理工具,當程序中斷的時候supervisor能自動重新啟動它,可以執行再各類的unix機器上,supervisor就是用python開發的一套通用的程序管理程式,能將乙個普通的命令列程序變為後台daemon,並監控程序狀態,異常退出時能自動重啟

2.安裝supervisor

一共有兩張安裝方式,一般採用方式二tar包的安裝方式,本文講解方式二安裝

安裝方法一:

yum -y install python-setuptools

easy_install supervisor

安裝方法二:

wget

tar zxvf supervisor-3.1.3.tar.gz

cd supervisor-3.1.3

python setup.py install

3.檢查是否安裝成功(輸出有配置檔案即為成功)

4.配置supervisor

4.1建立supervisor目錄和初始化配置檔案

mkdir -p /www/server/supervisor (我一般都喜歡存放再/www下的目錄,可自行更改)

echo_supervisord_conf > /www/server/supervisord.conf

4.2修改supervisord.conf配置檔案

file=/www/server/supervisor/supervisord.d/run/supervisor/supervisor.sock ; socket 路徑

[supervisorctl]

#socket 路徑

serverurl=unix:///www/server/supervisor/supervisord.d/run/supervisor.sock

[supervisord] ; supervisord 全域性配置 logfile=/www/server/supervisor/supervisord.d/log/supervisord.log ; supervisor 日誌路徑

pidfile=/www/server/supervisor/supervisord.d/run/supervisord.pid ; pid 檔案路徑

[include] ;為了不將所有新增的配置資訊寫乙個配置檔案,這裡標註乙個配置資訊存放目錄,方便管理 files = /www/server/supervisor/supervisord.d/conf/*.conf

注:可選修改配置,啟用web監控 --推薦不開啟佔資源

port=127.0.0.1:9001 ;看配置檔案都可自行修改

username=user

password=123

4.3建立日誌,程序配置資訊目錄等

mkdir -p /www/server/supervisor/supervisord.d

mkdir -p /www/server/supervisor/supervisord.d/run

mkdir -p /www/server/supervisor/supervisord.d/conf

mkdir -p /www/server/supervisor/supervisord.d/log

5.新增乙個程序資訊並啟動,如confd

vim /www/server/supervisor/supervisord.d/conf/confd.conf

[program:confd]

directory = /usr/local/bin ; 程式的啟動目錄

command = /usr/local/bin/confd -config-file /etc/confd/confd.toml ; 啟動命令,與命令列啟動的命令是一樣的

autostart = true ; 在 supervisord 啟動的時候也自動啟動

startsecs = 5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了

autorestart = true ; 程式異常退出後自動重啟

startretries = 3 ; 啟動失敗自動重試次數,預設是 3

user = root ; 用哪個使用者啟動

redirect_stderr = true ; 把 stderr 重定向到 stdout,預設 false

stdout_logfile_maxbytes = 20mb ; stdout 日誌檔案大小,預設 50mb

stdout_logfile_backups = 20 ; stdout 日誌檔案備份數

; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)

stdout_logfile = /www/server/supervisor/supervisord.d/log/confd.log ;日誌統一放在log目錄下

; 可以通過 environment 來新增需要的環境變數,一種常見的用法是修改 pythonpath

; environment=pythonpath=$pythonpath:/path/to/somewhere

6.啟動surpervisord

方法一:

加軟連線:

ln -s /www/server/supervisor/supervisord.conf /etc/

supervisord -c /www/server/supervisor/supervisord.conf 

方法二: 設定開機自啟

vim /usr/lib/systemd/system/supervisord.service

[unit]

description=process monitoring and control daemon

after=rc-local.service nss-user-lookup.target

[service]

type=forking

execstart=/usr/bin/supervisord -c /www/server/supervisor/supervisord.conf

execstop=/usr/bin/supervisord shutdown

execreload=/usr/bin/supervisord reload

killmode=process

restart=on-failure

restartsec=42s

[install]

wantedby=multi-user.target

systemctl start superxisord

systemctl stop superxisord

systemctl enables superxisord

systemctl status superxisord

7.supervisorctl命令詳解

supervisorctl status 檢視正在執行程序

supervisorctl update 更新新的配置檔案到supervisord.conf(不重啟已經再執行的程序)

supervisorctl reload 載入所有配置檔案,並啟動(需要重啟已經運動的程序)

supervisorctl start *** 啟動某個程序如文章的[program:beepkg],取program:beepkg

supervisorctl stop *** 關閉某個程序

supervisorctl restart *** 重啟某個程序

supervisorctl stop groupworker 重啟所有屬於名為groupworker紮個分組的程序(start,restart同理)

supervisorctl stop all 停止全部程序

安裝使用supervisor

yum install python setuptools easy install supervisor 測試安裝是否成功 echo supervisord conf 2.建立配置檔案 建立supervisor配置檔案目錄 etc supervisor mkdir m 755 p etc supe...

supervisor 安裝使用

安裝supervisor yum install supervisor y 更改配置檔案 vim etc supervisord.conf 新增一行配置 include files etc supervisord.d conf.d conf 儲存退出 啟動 supervisord c etc sup...

supervisor 安裝和使用

今天第一次在csdn上面寫部落格,希望以後能寫出更多的部落格。廢話不多說進入主題。supervisor是什麼?supervisor是python寫的程序管理工具可以,可以在linux環境下面監控程序,並且當程序掛掉的時候自動的拉起程序。supervisor在linux環境安裝時安裝上去了,也配置了配...