今天用阿里云发布一个springboot的微信机器人程序,因为程序涉及到退出再重启的过程,所以找到了supervisord工具并使用,使用起来也是十分的easy,
1) Ubuntu 16安装
sudo apt-get install supervisor安装后会自动启动
2)安装成功后创建配置文件
创建之后进行需要的配置
[program:XXXX项目名称]
command=java -jar /home/admin/wechatbot.jar ;被监控程序指定的运行脚本
directory=/home/admin/ ;被监控程序运行的路径
autostart=false ;是否随supervisord进程启动而启动,包括reloadconf
autorestart=true ;被监控程序异常中断是否自动重启
startsecs=5 ;被监控程序启动时持续时间
startretries=5 ;被监控程序启动失败重试的次数
redirect_stderr=true ;是否重定向std err
stdout_logfile=/tmp/wec-sv.log ;stdou 重定向输出文件
stdout_events_enabled=true ;是否允许stdout事件
stopsignal=QUIT ;被监控程序kill的信号
stdout_logfile=/log/app.log ;日志打印位置
stderr_logfile=/log/error.log ;错误打印位置
还有一些没用到,大家可以按照自己的需求配置
3)命令
supervisorctl 为supervisor客户端
常用命令:
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。