進程管理工具supervisor


進程管理工具supervisor

一.介紹

1.Supervisor是一個客戶/服務器系統,它可以在類Unix系統中管理控制大量進程。Supervisor使用python開發,有多年歷史,目前很多生產環境下的服務器都在使用Supervisor。

2.Supervisor的服務器端稱為supervisord,主要負責在啟動自身時啟動管理的子進程,響應客戶端的命令,重啟崩潰或退出的子進程,記錄子進程stdout和stderr輸出,生成和處理子進程生命周期中的事件。可以在一個配置文件中配置相關參數,包括Supervisord自身的狀態,其管理的各個子進程的相關屬性。配置文件一般位於/etc/supervisord.conf。

3.Supervisor的客戶端稱為supervisorctl,它提供了一個類shell的接口(即命令行)來使用supervisord服務端提供的功能。通過supervisorctl,用戶可以連接到supervisord服務器進程,獲得服務器進程控制的子進程的狀態,啟動和停止子進程,獲得正在運行的進程列表。客戶端通過Unix域套接字或者TCP套接字與服務端進行通信,服務器端具有身份憑證認證機制,可以有效提升安全性。當客戶端和服務器位於同一台機器上時,客戶端與服務器共用同一個配置文件/etc/supervisord.conf,通過不同標簽來區分兩者的配置。

4.Supervisor也提供了一個web頁面來查看和管理進程狀態,這個功能用得人比較少。

官網:http://supervisord.orghttp://supervisord.org)

二.安裝

一定要用Python2,因為3不支持

pip install supervisor

測試是否安裝成功:

echo_supervisord_conf

創建配置文件:

echo_supervisord_conf > /etc/supervisord.conf

三.配置文件設置

# 生成必要的配置文件
echo_supervisord_conf > supervisord.conf

# 將配置文件統一放在/etc下
cp supervisord.conf /etc/supervisord.conf

# 為了不將所有新增配置信息全寫在一個配置文件里,我們新建一個文件夾,每個配置信息新增一個配置文件,相互隔離
mkdir /etc/supervisord.d/

修改配置文件
vim /etc/supervisord.conf

加入以下配置信息

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
username=user              ; default is no username (open server)
password=123               ; default is no password (open server)

[include]
files = /etc/supervisord.d/*.conf

pip安裝產生的二進制文件在/home/superpika/.local/bin/supervisord

加個任務:

vim /etc/supervisord.d/tail.conf
[program:tail1]                                                                            
command=tail -f  /etc/supervisord.conf   ;常駐后台的命令
autostart=true                           ;是否隨supervisor啟動
autorestart=true                         ;是否在掛了之后重啟,意外關閉后會重啟,比如kill掉!
startretries=3                           ;啟動嘗試次數
stderr_logfile=/tmp/tail1.err.log        ;標准輸出的位置
stdout_logfile=/tmp/tail1.out.log        ;標准錯誤輸出的位置

啟動

cat /etc/supervisord.conf  # 看一下
supervisorctl shutdown # 關掉之前的
supervisord -c /etc/supervisord.conf # 加載我們的配置

supervisorctl status

打開http://127.0.0.1:9001/

四.常用命令:

1.啟動supervisord管理的所有進程supervisorctl start all

2.停止supervisord管理的所有進程supervisorctl stop all

3.啟動supervisord管理的某一個特定進程

supervisorctl start program-name // program-name為[program:xx]中的xx

4.停止supervisord管理的某一個特定進程

supervisorctl stop program-name  // program-name為[program:xx]中的xx

5.重啟所有進程或某一個特定進程

supervisorctl restart all  // 重啟所有
supervisorctl reatart program-name // 重啟某一進程,program-name為[program:xx]中的xx

6.查看supervisord當前管理的所有進程的狀態

supervisorctl status

7.停止supervisord

supervisorctl shutdown


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM