supervisor是用python開發的一套通用的程序管理程式,能將乙個普通的命令列程序變為後台daemon,並監控程序狀態,異常退出時能自動重啟。它是通過fork/exec的方式把這些被管理的程序當作supervisor的子程序來啟動,這樣只要在supervisor的配置檔案中,把要管理的程序的可執行檔案的路徑寫進去即可。也實現當子程序掛掉的時候,父程序可以準確獲取子程序掛掉的資訊的,可以選擇是否自己啟動和報警。supervisor還提供了乙個功能,可以為supervisord或者每個子程序,設定乙個非root的user,這個user就可以管理它對應的程序
[root@master ~]
# cat /etc/redhat-release
centos linux release 7.2.1511 (core)
yum install supervisor -y
列印示例內容到終端
echo_supervisord_conf
生成配置檔案
echo_supervisord_conf > /etc/supervisord.conf
常用配置介紹
欄位名稱
注釋port=127.0.0.1:9001
管理**埠
username=user
管理**使用者名稱
password=123
管理**密碼
files = relative/directory/*.ini
配置檔案存放目錄及格式
啟動
supervisord -c /etc/supervisord.conf
加入自啟動
systemctl enable supervisord
服務資訊檢視
[root@master src]
# ps -ef|grep supervisor
root 29019 1 0 14:42 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root 29110 8863 0 14:43 pts/1 00:00:00 grep --color=auto supervisor
停止supervisor
[root@master src]
# supervisorctl shutdown
shut down
[root@master src]
# supervisorctl reload
restarted supervisord
新建配置檔案目錄,最下面的配置路徑,預設為
files = relative/directory/*.ini
可更改
files = /etc/supervisor/*.ini
mkdir -p /etc/supervisor/
在/etc/supervisor/
新建nginx.ini
vim /etc/supervisor/nginx.ini
#-----------------------------------
[program: nginx]
# 修改自己的路徑
autorestart=true ;
autostart=true ;
#這是nginx日誌路徑,web會用到
environment=aspnetcore_environment=production ;
user=root ;
#啟動使用者
stopsignal=int
startsecs=10 ;
startretries=5 ;
stopasgroup=true
重啟supervisor
[root@master etc]
# supervisorctl -c /etc/supervisord.conf reload
restarted supervisord
發現如下報錯
(file: '/etc/supervisor/nginx.ini'
)for help, use /usr/bin/supervisord -h
這個錯誤的原因是日誌不存在,手動建立即可
再次重啟,發現啟動成功
檢視nginx程序
[root@master supervisor]
# ps -ef|grep nginx
使用supervisor檢視nginx資訊
[root@master supervisor]
# supervisorctl status
nginx running pid 2154, uptime 0:02:40
使用supervisor關閉nginx
[root@master supervisor]
# supervisorctl stop nginx
nginx: stopped
再次檢視
[root@master supervisor]
# supervisorctl status
nginx stopped jul 20 03:45 pm
supervisor啟動nginx
[root@master supervisor]
# supervisorctl start nginx
nginx: started
[root@master supervisor]
# supervisorctl status
nginx running pid 2322, uptime 0:00:13
手動關閉nginx程序,看supervisor是否會拉起
[root@master supervisor]
# pkill nginx
[root@master supervisor]
# ps -ef|grep nginx
root 2406 2405 0 15:48 ? 00:00:00 nginx: worker process
拉起成功
修改/etc/supervisord.conf
,開啟以下幾行注釋
瀏覽器訪問驗證
輸入配置檔案中的賬號密碼
即可通過瀏覽器對nginx進行操作,以及檢視日誌等,到此就全部完成了。
碼字不易,請多多點贊
supervisor安裝配置
linux的後台程序執行有好幾種方法,例如nohup,screen等,但如果是乙個服務程式要可靠地在後台執行,我們就需要把它做成daemon,最好還能監控程序狀態,在意外結束時能自動重啟。而supervisor是python開發的一套通用的程序管理程式,能將乙個普通的命令列程序變為後台daemon,...
Supervisor安裝與配置程序守護
你好,我是dr.葉子,用心寫最優美的部落格,彈最好聽的鋼琴!當乙個程序必須不斷執行,但是這個程序可能因為伺服器等多種因素而導致中斷。這時候,我們希望能自動重新啟動它,就需要使用到了supervisor 起到守護程序的作用。聯網安裝 pip install supervisor pypi官網 或者 s...
Supervisor服務的安裝與配置
目錄 三 應用配置 一些命令解釋 supervisor 要安裝的軟體的名稱。supervisord 裝好supervisor軟體後,supervisord用於啟動supervisor服務。supervisorctl 用於管理supervisor配置檔案中program。yum install epe...