记一次 Centos7 supervisor 配置管理 SpringBoot 进程

一、环境搭建

参考: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、创建目录:

[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 进程操作完毕!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章