進程管理工具supervisor

進程管理工具supervisor

一.介紹

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

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

3.Supervisor的客戶端稱爲supervisorctl,它提供了一個類shell的接口(即命令行)來使用supervisord服務端提供的功能。經過supervisorctl,用戶能夠鏈接到supervisord服務器進程,得到服務器進程控制的子進程的狀態,啓動和中止子進程,得到正在運行的進程列表。客戶端經過Unix域套接字或者TCP套接字與服務端進行通訊,服務器端具備身份憑證認證機制,能夠有效提高安全性。當客戶端和服務器位於同一臺機器上時,客戶端與服務器共用同一個配置文件/etc/supervisord.conf,經過不一樣標籤來區分二者的配置。shell

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

官網: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/supervisordspa

加個任務:命令行

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
相關文章
相關標籤/搜索