原创

Supervisor 进程管理的安装和使用

前言

Supervisor 是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon ,并监控进程状态,异常退出时能自动重启。它是通过 fork/exec 的方式把这些被管理的进程当作 supervisor 的子进程来启动,这样只要在 supervisor 的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。
supervisor 还提供了一个功能,可以为 supervisord 或者每个子进程,设置一个非 rootuser,这个 user 就可以管理它对应的进程。

安装

1、更新 apt

sudo apt update

2、安装 supervisor

sudo apt install supervisor

3、常用命令

命令 说明
supervisorctl stop program_name 停止某个进程
supervisorctl start program_name 启动某个进程
supervisorctl restart program_name 重启某个进程
supervisorctl stop all 停止全部进程
supervisorctl reload 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl update 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

使用

1、查看配置文件引入地址

supervisor 的配置文件默认在 /etc/supervisor/supervisord.conf ,所以我们打开瞧瞧

vim /etc/supervisor/supervisord.conf

如图:
file
从上图中可以看到,配置文件中引入了 /etc/supervisor/conf.d/*.conf
所以我们可以在 /etc/supervisor/conf.d/ 下创建我们自己项目的 .conf 配置文件

2、创建 supervisor 项目配置文件

此处以Java项目为例,我的配置文件如下:

# 新建一个应用并设置一个名称
[program:java-test]
# 设置命令在指定的目录内执行
directory=/home/liang/deploy/java-test
# 这里为您要管理的项目的启动命令
command=java -jar ./java-test.jar
# 以哪个用户来运行该进程
user=root
# supervisor 启动时自动该应用
autostart=true
# 进程退出后自动重启进程
autorestart=true
# 进程持续运行多久才认为是启动成功
startsecs=1
# 重试次数
startretries=3
# stderr 日志输出位置
stderr_logfile=/home/liang/log/java-test/runtime/stderr.log
# stdout 日志输出位置
stdout_logfile=/home/liang/log/java-test/runtime/stdout.log
[supervisord]

注意: 这里的配置文件一定要在末尾加上 [supervisord] 不然启动会失败

3、载入配置文件

supervisorctl reload

然后就可以观察项目是否启动了,至此教程结束

正文到此结束
本文目录