代码准备工作
在代码目录执行go build
或者go install
来生成可执行文件
注意:如果使用
go install
生成在bin目录下的可执行文件,需要注意代码中的日志目录问题
安装supervisor
官网地址:http://supervisord.org/index.html
1 | sudo yum install python-setuptools |
安装成功后,生成配置文件
1 | sudo echo_supervisord_conf > /etc/supervisord.conf |
添加配置文件
新建一个文件夹专门放置.conf文件
在/etc/
下新建supervisor_conf_file
文件夹,并在该文件加下新建gin_api.conf
:
1 | [program:gin_api] |
说明:
1 | command:表示运行的命令,我这是填写的我demo安装包的原则路径。 |
修改配置文件
编辑 /etc/supervisord.conf
,将文件最下面的
1 | ;[include] |
修改为:
1 | [include] |
启动supervisord
1 | sudo /usr/bin/supervisord -c /etc/supervisord.conf |
若报如下错误:
1 | Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord. |
解决办法:
1 | find / -name supervisor.sock |
之后再次执行启动命令。
执行命令查看gin_api服务是否启动成功:
1 | sudo supervisorctl status |
输出:
1 | gin_api RUNNING pid 7648, uptime 0:09:57 |
ps:
1 | [root@accapp /home/go/src/gin_api]# supervisorctl |
相关命令
停止supervisor(子进程也会被停止)
1
supervisorctl shutdown
把 supervisor 相关的进程都杀掉
1
kill -9 $(ps -ef|grep supervisor | awk '{print $2}')
解决unix:///tmp/supervisor.sock no such file的问题
原因:tmp目录中的文件被Linux自动清除了
新建目录和修改权限
1
2
3
4
5sudo mkdir -p /var/supervisor_tmp/run
sudo mkdir -p /var/supervisor_tmp/log
sudo chmod 777 /var/supervisor_tmp/run
sudo chmod 777 /var/supervisor_tmp/log修改/etc/supervisor.conf配置文件
把所有的/tmp
路径修改掉:/tmp/supervisor.sock
改成/var/supervisor_tmp/run/supervisor.sock
/tmp/supervisord.log
改成/var/supervisor_tmp/log/supervisor.log
/tmp/supervisord.pid
改成/var/supervisor_tmp/run/supervisor.pid
重启
杀掉supervisor进程和子进程,再启动supervisor