一、supervisor简介

  Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

 

二:安装

1.安装

yum install epel-release -y
yum install -y supervisor

 

2.开机启动

systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务

 

3.当前存在的目录

  

 

4.说明

  进程管理配置参数,不建议全都写在supervisord.conf文件中,可以将每个进程写一个配置文件放在include指定的目录下引入进supervisord.conf文件中。

  /etc/supervisor.d目录,用于存放进程管理的配置文件。(此处目录可自定义,与配置文件中对应即可)

 

5.配置

  修改 /etc/supervisord.conf 中的include参数,将 /etc/supervisor.d 目录添加到 include 中(目前,进入发现已经配置好了)

  说明:*.ini   是可以指定一个或多个以.ini结束的配置文件。

  

6.创建目录

[root@localhost ~]# mkdir /opt/software/service
[root@localhost ~]# mkdir /opt/software/service/logs

  将jar包上传到service目录下

  

 

  写子进程的配置文件:

vim /etc/supervisord.d/resend.ini

  详细配置:  

[program:restsend]
environment=JAVA_HOME=/opt/software/jdk1.8.0_341
directory=/opt/software/service
command=/opt/software/jdk1.8.0_341/bin/java -Xms512m -Xmx1024m -Dspring.profiles.active=prd -Dserver.port=8099 -jar /opt/software/service/restsend.jar
autostart=true
startsecs=10
autorestart=true
startretries=3
user=root
priority=999
redirect_stderr=true
stdout_logfile_maxbytes=20MB
stdout_logfile_backups = 20
stdout_logfile=/opt/software/service/logs/log.log
stopasgroup=false
killasgroup=false

  添加权限:

chmod 755 /etc/supervisord.d/resend.ini 

  重启服务

systemctl restart supervisord.service

 

 7.观察效果

  

 

三:常见命令

1.常用命令

1、启动指定服务
[root@localhost ~]# supervisorctl start restsend 
2、停止指定服务
[root@localhost ~]# supervisorctl stop restsend 
3、重启指定服务
[root@localhost ~]# supervisorctl restart restsend
4、启动 supervisor 服务
[root@localhost ~]# systemctl start restsend
5、停止 supervisor 服务
[root@localhost ~]# systemctl stop supervisord
6、查看  supervisor 服务运行状态
[root@localhost ~]# systemctl status supervisord
7、supervisor 重新加载配置信息
[root@localhost ~]# systemctl reload supervisord
8、supervisor 服务 重启 [root@localhost ~]# systemctl restart supervisord

 

2.查看运行jar

supervisorctl status        //查看所有进程的状态

 

3.注意事项

  使用supervisor进程管理命令之前先启动supervisord,否则程序报错。

 

 posted on 2022-08-04 11:25  曹军  阅读(287)  评论(0编辑  收藏  举报