安装
要求机器安装了python 和 pip
pip install supervisor
配置
mkdir /etc/supervisord.d
echo_supervisord_conf > /etc/supervisord.conf
使用这两个默认安装位置就好
然后要稍微修改一下配置信息
sudo vi /etc/supervisord.conf
添加这个到文件的末尾
第一段的意思是使用引用
第二段的意思是引用的文件地址的类型
[include]
files = /etc/supervisord.d/*.ini
编写需要被Supervisor管理的进程
到配置的引用文件地址那里添加
在这个文件夹/etc/supervisord.d下添加 go.ini 文件
内容是:
[program:go_serve]
command=go run ./main.go
directory=/www/wwwroot/go_serve
startsecs = 5
autorestart = true
autostart=true
redirect_stderr=true
stdout_logfile=/www/wwwroot/go_serve.log
写这个文件的时候后面不要带备注
其中的意思看下面这个从网上找的:
[program:tomcat] #程序唯一名称
directory=/usr/local/tomcat #程序路径
command=/usr/local/tomcat/bin/catalina.sh run #运行程序的命令
autostart=true #是否在supervisord启动后tomcat也启动
startsecs=10 #启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true #程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启;意思为如果不是supervisord来关闭的该进程则认为不正当关闭,supervisord会再次把该进程给启动起来,只能使用该supervisorctl来进行关闭、启动、重启操作
startretries=3 #启动失败自动重试次数,默认是3
user=root #用哪个用户启动进程,默认是root
priority=999 #进程启动优先级,默认999,假如Supervisord需要管理多个进程,那么值小的优先启动
stopsignal=INT
redirect_stderr=true #把stderr重定向到stdout标准输出,默认false
stdout_logfile_maxbytes=200MB #stdout标准输出日志文件大小,日志文件大小到200M后则进行切割,切割后的日志文件会标示为catalina.out1,catalina.out2,catalina.out3...,默认50MB
stdout_logfile_backups = 100 #stdout标准输出日志文件备份数,保存100个200MB的日志文件,超过100个后老的将被删除,默认为10保存10个
stdout_logfile=/usr/local/tomcat/logs/catalina.out #标准日志输出位置,如果输出位置不存在则会启动失败
stopasgroup=false #默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false #默认为false,向进程组发送kill信号,包括子进程
启动supervisor
#supervisord启动
supervisord -c /etc/supervisord.conf
然后我们启动go_serve这个进程
supervisorctl start go_serve
相关的命令:
supervisorctl start
supervisorctl stop
supervisorctl restart
supervisorctl reoload
supervisorctl status
相关问题
如果提示ERROR (no such process)
查看 supervisord.conf 后面的配置,
执行启动命令,reload命令都是正常的,没有报错,查看进程状态的时候什么都没有显示,说明进程没有开启, 遂执行supervisorctl start golang-server命令,报错golang-server: ERROR (no such process)
解决问题 : 配置文件supervisor.conf中 ;[include]冒号去掉