Loading

安装并使用supervisor守护进程监控

1.前言
supervisor是一个进程管理工具,当进程中断的时候supervisor能自动重新启动它,可以运行再各类的unix机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启
 
2.安装supervisor
一共有两张安装方式,一般采用方式二tar包的安装方式,本文讲解方式二安装
 
安装方法一:
yum -y install python-setuptools
easy_install supervisor
 
安装方法二:
python setup.py install
 
3.检查是否安装成功(输出有配置文件即为成功)
echo_supervisord_conf
 
 
4.配置supervisor
 
4.1创建supervisor目录和初始化配置文件
mkdir -p /www/server/supervisor (我一般都喜欢存放再/www下的目录,可自行更改)
echo_supervisord_conf > /www/server/supervisord.conf
 
4.2修改supervisord.conf配置文件
vim supervisord.conf
这里只更改自己所需要的配置,如果想了解更多配置说明,请访问: https://www.cnblogs.com/toutou/p/supervisor.html
[unix_http_server]
file=/www/server/supervisor/supervisord.d/run/supervisor/supervisor.sock ; socket 路径
[supervisorctl]
#socket 路径
serverurl=unix:///www/server/supervisor/supervisord.d/run/supervisor.sock
[supervisord] ; supervisord 全局配置 logfile=/www/server/supervisor/supervisord.d/log/supervisord.log ; supervisor 日志路径
pidfile=/www/server/supervisor/supervisord.d/run/supervisord.pid ; pid 文件路径
[include] ;为了不将所有新增的配置信息写一个配置文件,这里标注一个配置信息存放目录,方便管理 files = /www/server/supervisor/supervisord.d/conf/*.conf
注:可选修改配置,启用web监控 --推荐不开启占资源
[inet_http_server]
port=127.0.0.1:9001 ;看配置文件都可自行修改
username=user
password=123
4.3创建日志,进程配置信息目录等
mkdir -p /www/server/supervisor/supervisord.d
mkdir -p /www/server/supervisor/supervisord.d/run
mkdir -p /www/server/supervisor/supervisord.d/conf
mkdir -p /www/server/supervisor/supervisord.d/log
 
5.添加一个进程信息并启动,如confd
vim /www/server/supervisor/supervisord.d/conf/confd.conf
[program:confd]
directory = /usr/local/bin ; 程序的启动目录
command = /usr/local/bin/confd -config-file /etc/confd/confd.toml ; 启动命令,与命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /www/server/supervisor/supervisord.d/log/confd.log ;日志统一放在log目录下
; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
 
6.启动surpervisord
方法一:
加软连接:
ln -s /www/server/supervisor/supervisord.conf /etc/
supervisord -c /www/server/supervisor/supervisord.conf 
 
方法二: 设置开机自启
 
vim /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
 
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /www/server/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisord shutdown
ExecReload=/usr/bin/supervisord reload
killMode=process
Restart=on-failure
RestartSec=42s
 
[Install]
WantedBy=multi-user.target
 
systemctl start superxisord
systemctl stop superxisord
systemctl enables superxisord
systemctl status superxisord
 
7.supervisorctl命令详解
 
supervisorctl status 查看正在运行进程
supervisorctl update 更新新的配置文件到supervisord.conf(不重启已经再运行的进程)
supervisorctl reload 载入所有配置文件,并启动(需要重启已经运动的进程)
supervisorctl start xxx 启动某个进程如文章的[program:beepkg],取program:beepkg
supervisorctl stop xxx 关闭某个进程
supervisorctl restart xxx 重启某个进程
supervisorctl stop groupworker 重启所有属于名为groupworker扎个分组的进程(start,restart同理)
supervisorctl stop all 停止全部进程
 
 
 
 

posted @ 2021-08-05 10:26  bathing  阅读(394)  评论(0)    收藏  举报
Live2D