Supervisor 自動管理進程

supervisor 能在 python 環境下自動管理進程,當所管理的進程掛掉,supervisor 能夠自動拉起被管理的進程。python

一、安裝 supervisorweb

pip install supervisor

二、測試安裝是否成功瀏覽器

echo_supervisord_conf

三、建立、編輯配置文件app

主要要經歷下面幾個步驟:tcp

(1) 在/etc 下建立目錄 supervisor測試

(2) 在 /etc/supervisor 下建立主配置文件 supervisord.conf 和 項目應用配置文件目錄 conf.dui

(3) 在 conf.d 下建立項目應用配置文件 my_app.ini 並編輯配置之spa

(4) 在主配置文件 supervisord.conf 裏引用項目應用配置文件 my_app.ini命令行

 

3.1 在/etc 下建立目錄 supervisorrest

cd /etc
sudo mkdir supervisor

最終:/etc/supervisor

3.2 在 /etc/supervisor 下建立主配置文件 supervisord.conf 和 項目應用配置文件目錄 conf.d

自動生成配置文件 supervisord.conf
echo_supervisord_conf > supervisord.conf
cp supervisord.conf /etc/supervisor/supervisord.conf

cd /etc/supervisor
sudo mkdir conf.d

最終:
/etc/supervisor/supervisord.conf
/etc/supervisor/conf.d

3.3 在 conf.d 下建立項目應用配置文件 my_app.ini 並編輯配置之

my_app.ini 配置示例:

[program: my_app]
command=my_app -a 123 ; 啓動 my_app 進程的命令行,便於 supervisord 拉起 my_app
autostart=true
startsec=3
autorestart=true
stopsignal=QUIT
priority=1
stopasgroup=true
killasgroup=true stdout_logfile
=.../my_project/log/supervisor.log stderr_logfile=.../my_project/log/supervisor_err.log

3.4 在主配置文件 supervisord.conf 裏引用項目應用配置文件 my_app.ini

修改主配置文件 supervisord.conf

找到 include
;[include]
;files = relative/directory/*.ini

改成:
[include]
files = ./conf.d/*.ini

上面的 *.ini 已經包含了 my_app.ini 因此更通用。

四、啓動 supervisor

supervisord -c supervisord.conf

使用 pstree -p 能夠看到進程樹形如: supervisord --- 被管理的進程

五、使用 supervisorctl 查看已經被管理的的程序

supervisorctl -c /etc/supervisor/supervisord.conf

六、重啓 supervisor

supervisorctl reload

 

注意:

一、supvisor 較適合管理監控業務應用,且只能監控前臺程序,不能監視後臺程序;

如監控 daemon 類程序,會拉不起被監控的程序,會出現錯誤:

BACKOFF  Exited too quickly (process log may have details)

二、每次修改配置文件後,用

supervisorctl reload

重啓 supervisor 才能生效

三、涉及 2個命令:

supervisord - 用於啓動 supervisor 

supervisorctl  - 用於啓動 supervisor 命令行,可執行 start、stop、status、reload 等操做

四、web 管理界面

支持經過 web 界面管理

修改 supervisord.conf 配置,便可啓動 web 管理界面

修改爲相似下面:

[inet_http_server]
port=127.0.0.1:9001
username=user
password=123

若 9001 端口拒絕訪問,可開啓訪問

[root@localhost ~]# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 9001 -j ACCEPT 
[root@localhost ~]# service iptables save  

接下來,就能夠經過 瀏覽器web訪問管理界面了

相關文章
相關標籤/搜索