Supervisor-java守护进程工具

1、安装Python包管理工具(easy_install)

yum install python-setuptools

2、安装Supervisor

easy_install supervisor

3、配置Supervisor应用守护

3.1 通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

3.2 然后查看路径下的supervisord.conf。在文件尾部添加如下配置

...
;[include]
;files = relative/directory/*.ini

;conf.d 为配置表目录的文件夹,需要手动创建
[include]
files = conf.d/*.conf`

3.3 为你的程序创建一个.conf文件,放在目录"/etc/supervisor/conf.d/"下

[program:hwSdkServer]
;environment=JAVA_HOME=//jdk1.8.0/bin  ; 这里可以创建环境变量
directory = /opt/4kgarden/java ; 程序的启动目录
command = java -jar -server -Xms256m -Xmx512m -Djava.io.tmpdir=/tmp  -Djava.security.egd=file:/dev/./urandom sdk_server_java_hw-1.0.3.jar --spring.profiles.active=test -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./jvmlogs ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 30        ; 启动 30 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = root          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /opt/logs/4kgarden/hwSdkServer/hwSdkServer.log ;应用日志目录

3.4 运行supervisord,查看是否生效,不报错就OK

supervisord -c /etc/supervisor/supervisord.conf

4、配置Supervisor开机启动

4.1 /usr/lib/systemd/system/ 目录中新建一个“supervisord.service”文件

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl shutdown
ExecReload=/usr/local/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

4.2 开启开机启动
systemctl enable supervisord

4.3 验证是否成功
systemctl is-enabled supervisord
在这里插入图片描述

4.4 常用命令

supervisorctl restart <application name> ;重启指定应用
supervisorctl stop <application name> ;停止指定应用
supervisorctl start <application name> ;启动指定应用
supervisorctl restart all ;重启所有应用
supervisorctl stop all ;停止所有应用
supervisorctl start all ;启动所有应用

*4.5 *参考文档

你可能感兴趣的:(应用软件)