一、服务器配置介绍
1、系统:centos7
2、JDK:java8
二、安装supervisor
本文使用yum方式,其他系统可自行查询合适的安装工具
yum install supervisor
三、supervisor配置文件
1、supervisor配置文件在 /etc/superviosr/目录下,其中supervisord.conf为总配置文件,服务配置可放在conf.d目录下,命名为*.conf
2、本文中springboot服务名称为“demo”,jar包为“demo.jra”,目录为/root/projects/demo
服务配置如下:注意,这里面注释符号为; 而不是常用的#,否则启动会出错
[program:demo]
directory=/root/projects/demo ; 程序的启动目录
command=java -jar demo.jar ; 启动命令
autostart=true ; 在 supervisord 启动的时候也自动启动
startsecs=30 ; 启动 30 秒后没有异常退出,就当作已经正常启动了
autorestart=true ; 程序异常退出后自动重启
startretries=3 ; 启动失败自动重试次数,默认是 3
user=root ; 用哪个用户启动
redirect_stderr=true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes=100MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups=2 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录
stdout_logfile=/root/projects/demo/nohup.out ;应用日志目录
四、supervisor使用
1、首先启动supervisor
supervisord -c /etc/supervisor/supervisord.conf
2、因为设置了随supervisor启动而启动,所以此时项目已经启动了,使用命令查看进程
3、本地访问服务成功
五、supervisor其他命令
systemctl start supervisord.service //启动supervisor并加载默认配置文件
systemctl enable supervisord.service //将supervisor加入开机启动项
supervisorctl status //查看所有进程的状态
supervisorctl stop es //停止es
supervisorctl start es //启动es
supervisorctl restart //重启es
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序
六、supervisor终端操作
可以使用supervisorctl命令进入终端,然后以上命令可以省去supervisorctl
七、可能会遇到的问题
1、error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224
这种一般是未启动supervisord服务导致,使用启动命令即可
supervisord -c /etc/supervisor/supervisord.conf
2、Error: not a valid boolean value: 'true # \xe5\x9c\xa8 supervisord \xe5\x90\xaf\xe5\x8a\xa8\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xe4\xb9\x9f\xe8\x87\xaa\xe5\x8a\xa8\xe5\x90\xaf\xe5\x8a\xa8' in section 'program:demo' (file: '/etc/supervisor/conf.d/demo.conf')For help, use /usr/bin/supervisord -h
这种一般就是上面注意事项说到的,注释符号的问题了,解决办法就是使用; 来注释。
八、说明
1、本文在操作时supervisorctl需要在/etc/supervisor/目录下操作,否则会找不到服务/进程。可能有全局的设置,但是此时没有进行操作,以后扩展的话再补充此文。
2、操作时参考了一篇博客:https://www.jianshu.com/p/0b9054b33db3 写的更为详细。