一、环境搭建
参考:https://blog.csdn.net/llwy1428/article/details/105335108
二、配置管理进程
进程管理配置参数,不建议全都写在supervisord.conf文件中,可以将每个进程写一个配置文件放在include指定的目录下引入进supervisord.conf文件中。
创建/etc/supervisor.d目录,用于存放进程管理的配置文件。(此处目录可自定义,与配置文件中对应即可)
[root@localhost ~]# mkdir /etc/supervisord.d
修改 /etc/supervisord.conf 中的include参数,将 /etc/supervisor.d 目录添加到 include 中
[include]
files = /etc/supervisord.d/*.ini
说明:*.ini 是可以指定一个或多个以.ini结束的配置文件。
三、服务配置模板
1、创建一个 Java SpringBoot 的程序 HelloSupervisor
2、打成 jar 包(过程略)
3、创建目录:
![](/qrcode.jpg)
[root@localhost ~]# mkdir /opt/HelloSupervisor
[root@localhost ~]# mkdir /opt/HelloSupervisor/logs
4、安装 JDK
参考 https://blog.csdn.net/llwy1428/article/details/85232267
5、把 jar 包上传至目录 /opt/HelloSupervisor
6、编辑 HelloSupervisor 的配置模板
[root@localhost ~]# vim /etc/supervisord.d/HelloSupervisor.ini
7、写入以下内容
;[program:HelloSupervisor]是被管理的进程配置参数,tomcat是进程的名称
[program:HelloSupervisor]
environment=JAVA_HOME=/opt/jdk1.8.0_241/bin ; 这里可以创建环境变量
directory=/opt/HelloSupervisor ; 程序的启动目录
command=/opt/jdk1.8.0_241/bin/java -Xms512m -Xmx1024m -Dspring.profiles.active=prd -Dserver.port=8080 -jar /opt/HelloSupervisor/HelloSupervisor.jar ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart=true ; 在supervisord启动的时候也自动启动
startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才>重启
startretries=3 ; 启动失败自动重试次数,默认是3
user=root ; 用哪个用户启动进程,默认是root
priority=999 ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/opt/HelloSupervisor/logs/log.log
stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程
8、修改配置文件的权限
[root@localhost ~]# chmod 755 /etc/supervisord.d/HelloSupervisor.ini
9、重启服务
[root@localhost ~]# systemctl restart supervisord.service
10、浏览器查看
浏览器地址栏录入: http://192.168.11.17:9001/ 192.168.11.17 是我虚拟机的 ip
可看到 HelloSupervisor 服务已经在运行
11、查看运行状态
[root@localhost ~]# netstat -lntp
HelloSupervisor 占用端口 8080 可看到服务已启动
四、服务启动、重启、配置重载与服务关闭
1、启动指定服务(以 HelloSupervisor 为例)
[root@localhost ~]# supervisorctl start HelloSupervisor
2、停止指定服务(以 HelloSupervisor 为例)
[root@localhost ~]# supervisorctl stop HelloSupervisor
3、重启指定服务(以 HelloSupervisor 为例)
[root@localhost ~]# supervisorctl restart HelloSupervisor
4、启动 supervisor 服务
[root@localhost ~]# systemctl start supervisord
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
至此,Centos7 supervisor 配置管理 SpringBoot 进程操作完毕!