supervisor 使用

一、介绍

Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程.
相关的组件

supervisor:要安装的软件的名称。
supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。
supervisorctl:用于管理supervisor配置文件中program。

二、安装部署

1、 centos7下安装

# yum install epel-release
# yum install -y supervisor
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务 
也可以使用/usr/bin/supervisord -c /etc/supervisord.conf &  启动,通常使用在docker里面启动改进程

# systemctl status supervisord # 查看supervisord服务状态
# ps -ef|grep supervisord # 查看是否存在supervisord进程

2、修改配置

默认的配置文件在 /etc/supervisord.conf
修改配置如下:

[supervisord] # 守护进程读取的配置
logfile=/data/supervisord/supervisord.log  # 守护进程的日志存放位置
logfile_maxbytes=50MB  #日志文件大小
logfile_backups=10 # 日志文件个数
loglevel=info #日志文件等级
pidfile=/data/supervisord/supervisord.pid
nodaemon=false # 使用以守护进程启动,配置为false,表示以守护进程启动

[program:task1]  # 守护进程具体管理的子线程,可以有多个
command=/usr/local/jdk/bin/java -cp task.jar:lib/* com.rs.task.server.task1  #子线程具体执行的命令
directory=/opt/data1 # 执行子进程的目录,也就是进入到该目录执行上面的命令
startretries=10 # 失败时采取的重启次数
autorestart=true #是否开启自动重启
startsecs=3 # 子进程启动多少秒以后表示运行
redirect_stderr=true
stdout_logfile=/data/taskserver.log

三、控制被守护的应用

修改/etc/supervisord.conf文件,添加如下配置

[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock

[unix_http_server]
file=/var/run/supervisor/supervisor.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

查看所有应用supervisorctl status
stop某个应用supervisorctl stop xxx, xxx为上一步现实的应用名即[program:demo]这里是demo
restart某个应用supervisorctl restart xxx
修改某个应用的配置后(supervisorctl update 会重新启动这个应用)

或者可以进入到supervisorctl 控制台

# supervisorctl -c /etc/supervisord.conf
supervisor> help    # 查看常用的命令
default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version
supervisor> status
ManageServer                     RUNNING   pid 1142, uptime 0:01:19
TaskServer                       RUNNING   pid 1143, uptime 0:01:19
cron_properties                  RUNNING   pid 1144, uptime 0:01:19
supervisor> version
3.4.0

参考借鉴:
https://www.cnblogs.com/huashengxue/p/9578636.html
https://blog.csdn.net/donggege214/article/details/80264811
https://blog.csdn.net/ningyuxuan123/article/details/81903711
https://blog.csdn.net/perfecttech/article/details/96136811

posted @ 2020-07-09 14:01  北漂-boy  阅读(203)  评论(0编辑  收藏  举报