• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

Supervisord进程管理工具详解【显哥出品,必为精品】

技术栈 lixian 4年前 (2021-01-27) 23104次浏览 0个评论 扫描二维码

supervisord是一个进程管理工具,提供web页面管理,能对进程进行自动重启等操作。
优点:
– 可以将非后台运行程序后台运行
– 自动监控,重启进程
缺点:
– 不能管理后台运行程序
– 对多进程服务,不能使用kill关闭

1.安装依赖包

yum install python-setuptools

wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-9.0.1.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
 
tar -zxvf pip-9.0.1.tar.gz 
 
cd pip-9.0.1
 
python setup.py build
 
python setup.py install

2.安装supervisor

pip install supervisor

3.生成配置文件

echo_supervisord_conf > /etc/supervisord.conf

4.新建自定义进程脚本目录

mkdir /etc/supervisord.d/

5.修改supervisor配置文件/etc/supervisor.conf

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

6.编写一个自启脚本

vim /etc/supervisord.d/test.ini
[program:test]                                                                            
command=ping baidu.com   ;常驻后台的命令
autostart=true                           ;是否随supervisor启动
autorestart=true                         ;是否在挂了之后重启,意外关闭后会重启,比如kill掉!
startretries=3                           ;启动尝试次数
stderr_logfile=/tmp/test.err.log        ;标准输出的位置
stdout_logfile=/tmp/test.out.log        ;标准错误输出的位置

7.启动supervisord服务

supervisord -c /etc/supervisord.conf 

管理命令:

supervisorctl stop program_name  # 停止某一个进程,program_name 为 [program:x] 里的 x
 
supervisorctl start program_name  # 启动某个进程
 
supervisorctl restart program_name  # 重启某个进程
 
supervisorctl stop groupworker:  # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
 
supervisorctl stop groupworker:name1  # 结束 groupworker:name1 这个进程 (start,restart 同理)
 
supervisorctl stop all  # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件
 
supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
 
supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:Supervisord进程管理工具详解【显哥出品,必为精品】
喜欢 (3)

您必须 登录 才能发表评论!