使用supervisor管理项目进程

supervisor管理自己本地项目

安装supervisor

yum install -y epel-release 
yum install -y supervisor  

以管理my-stacklifes博客为例,编译生成二进制可执行文件。

 cd /data/my-stacklifes/server/cmd/frontend/ && /usr/local/go/bin/go build main.go

yum安装完之后,如果存在配置文件,默认放在/etc下面,查看最后一行,可以/etc/supervisord.d/目录下新建对应的项目进程文件。

cat /etc/supervisord.conf
[include]
files = supervisord.d/*.ini

创建my-stacklifes.ini项目启动文件

touch /etc/supervisord.d/my-stacklifes.ini

配置kaisa.ini项目启动文件

# 新建一个应用并设置一个名称,这里设置为 my-stacklifes
[program:my-stacklifes]
# 设置命令在指定的目录内执行,注意输入你的项目所在目录
directory=/data/my-stacklifes/server/cmd/frontend/
# 这里为您要管理的项目的启动命令,这里的main是二进制文件
directory=/data/my-stacklifes/server/cmd/frontend/main
# 以哪个用户来运行该进程
user=root
# supervisor 启动时自动该应用
autostart=true
# 进程退出后自动重启进程
autorestart=true
# stderr 日志输出位置
stderr_logfile=/data/my-stacklifes/server/cmd/frontend/stderr.log
# stdout 日志输出位置
stdout_logfile=/data/my-stacklifes/server/cmd/frontend/stdout.log

启动 supervisor

supervisord -c /etc/supervisord.conf

关闭 supervisor

 supervisorctl shutdown

使用 supervisorctl 管理项目

# 启动 my-stacklifes 应用
supervisorctl start my-stacklifes
# 重启 my-stacklifes 应用
supervisorctl restart my-stacklifes
# 停止 my-stacklifes 应用
supervisorctl stop my-stacklifes
# 查看所有被管理项目运行状态
supervisorctl status

如果修改了配置,执行重新加载配置

# 重新加载配置文件
supervisorctl update
# 重新启动所有程序
supervisorctl reload