1.安装supervisor
yum -y install supervisor
2.查看supervisor进程
systemctl status supervisord.service
output
3.添加进程
为了演示supervisor功能,我以管理prometheus监控进程为例
在 /etc/supervisord.d 下创建一个以 ini 结尾的配置文件(默认ini,如果写成 conf 有时会没效),我这里为fping.ini
示例如下,更多详细内容可参照 Configuration File — Supervisor 4.2.5 documentation
# 新建一个程序,这里从程序名称设为 prometheus
[program:prometheus]
# 当supervisord守护进程时,在该目录执行命令
directory=/usr/local/prometheus
# 启动程序时运行的命令
command=/usr/local/prometheus/prometheus --storage.tsdb.path="/data/prometheusdata/" --web.listen-address="0.0.0.0:9090" --web.enable-admin-api --web.enable-lifecycle --storage.tsdb.retention.time=60d
# supervisor运行程序时的指定用户
user=root
# 如果为 true,则将进程的 stderr 输出发送回 其 stdout 文件描述符上的supervisord
redirect_stderr=false
# 进程 stdout 输出文件所在位置
stdout_logfile=/var/log/prometheus/stdout.log
# 日志可容纳的最大字节数
stdout_logfile_maxbytes=1MB
# 日志文件要保留的备份数
stdout_logfile_backups=10
# 当进程处于“标准输出捕获模式”时写入捕获 FIFO 的最大字节数
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
# 进程 stderr 输出文件所在位置
stderr_logfile=/var/log/prometheus/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
# 进程退出后是否自动重启该进程
autorestart=false
# 进程启动并运行多长时间后认为启动成功
startsecs=0
exitcodes=0
创建并保存我们的配置文件后,让supervisor加载新的配置
supervisorctl reread
supervisorctl update
输出如下
4.管理进程
输入supervisorctl 进入程序管理,如图
输入help显示其可用命令
启动程序
停止程序
查看程序状态