安装 EPEL 仓库
sudo yum install epel-release
安装 Supervisor
sudo yum install supervisor
启动和启用 Supervisor
sudo systemctl start supervisord # 启动 Supervisor
sudo systemctl enable supervisord # 设置为开机自启
创建 Supervisor 子配置文件
vi /etc/supervisord.d/java-pro.ini
-------------内容–下---------------------
[program:java-wjdc]
directory = /opt/jenkins_work/workspace/wjdc-admin-5026/wjdc-admin/target
command = nohup java -jar wjdc-admin.jar --spring.config.location=/opt/jenkins_work/conf/wjdc/application.yml > nohup.log &
priority = 10
numprocs = 1
autostart = true
autorestart = true
startretries = 50
stopwaitsecs = 25
startsecs = 15
exitcodes = 0
user = root
group = root
stdout_logfile = /var/log/java-wjdc-out.log
stderr_logfile = /var/log/java-wjdc-err.log
redirect_stderr = true
stdout_logfile_maxbytes = 5MB
stdout_logfile_backups = 10
---------------内容—上------------------
重新读取 Supervisor 配置
sudo supervisorctl reread
sudo supervisorctl update
启动 Java 应用程序
sudo supervisorctl start my-java-app
查看应用程序状态和日志
sudo supervisorctl status
启动某个项目
sudo supervisorctl start my_service
重启某个项目
sudo supervisorctl restart my_service
supervisorctl 子配置参数解析
[program:java-wjdc]
[program:java-wjdc]: 定义一个名为 java-wjdc 的程序块,后续的参数都是针对这个程序配置的。
directory = /opt/jenkins_work/workspace/wjdc-admin-5026/wjdc-admin/target
directory: 指定程序启动时的工作目录。在这里,指向 JAR 文件路径,这样 Java 进程在启动时相关的文件(如配置文件)都很容易被找到。
command = nohup java -jar wjdc-admin.jar --spring.config.location=/opt/jenkins_work/conf/wjdc/application.yml > nohup.log &
command: 指明启动程序的命令。使用 nohup 使程序在后台运行,> nohup.log 将标准输出定向到 nohup.log 文件中,& 表示在后台执行。
priority = 10
priority: 该进程的启动优先级,较低的数字表示较高的优先级。可以用于启动多个进程时决定它们的启动顺序。
numprocs = 1
numprocs: 启动的进程数。在这里设置为1,表示只启动一个实例。
autostart = true
autostart: 设置为 true 表示当 Supervisor 启动时,该程序将自动启动。
autorestart = true
autorestart: 设置为 true 表示如果程序崩溃,Supervisor 将自动重启该程序。
startretries = 50
startretries: 启动失败后尝试的次数。在尝试启动程序时,若失败,Supervisor 将重试最多50次。
stopwaitsecs = 25
stopwaitsecs: 当发送停止请求时,Supervisor 等待的时间(秒),在这段时间内如果没有退出进程,Supervisor 将强制停止它。
startsecs = 15
startsecs: 启动后需要等待的时间(秒),在这段时间内,如果进程崩溃,Supervisor 实际将其视为启动失败。
exitcodes = 0
exitcodes: 定义哪些退出代码表示正常退出,0 表示正常退出。
user = root
user: 运行该程序的用户,通常最好使用非 root 用户以提高安全性。
group = root
group: 指定运行该程序的用户组。
stdout_logfile = /var/log/java-wjdc-out.log
stdout_logfile: 指定标准输出日志文件的路径,方便后续查看程序输出。
stderr_logfile = /var/log/java-wjdc-err.log
stderr_logfile: 指定标准错误日志文件的路径,用于记录错误信息。
redirect_stderr = true
redirect_stderr: 如果设置为 true,则将标准错误输出重定向到 stdout_logfile。也就是将错误输出合并到正常输出中。
stdout_logfile_maxbytes = 5MB
stdout_logfile_maxbytes: 设置标准输出日志文件的最大字节数。当文件超过指定大小后,Supervisor 将自动进行轮转。
stdout_logfile_backups = 10
stdout_logfile_backups: 指定标准输出日志文件的备份数量,即保留的历史日志文件的数量。
2012

被折叠的 条评论
为什么被折叠?



