前言
Supervisor 是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon ,并监控进程状态,异常退出时能自动重启。它是通过 fork/exec 的方式把这些被管理的进程当作 supervisor 的子进程来启动,这样只要在 supervisor 的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor 还提供了一个功能,可以为 supervisord 或者每个子进程,设置一个非 root 的 user,这个 user 就可以管理它对应的进程。
安装
1、更新 apt 源
| 1 | sudo apt update | 
2、安装  supervisor
| 1 | 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 ,所以我们打开瞧瞧
| 1 | vim /etc/supervisor/supervisord.conf | 
如图:
从上图中可以看到,配置文件中引入了 /etc/supervisor/conf.d/*.conf
所以我们可以在 /etc/supervisor/conf.d/ 下创建我们自己项目的 .conf 配置文件
2、创建 supervisor 项目配置文件
此处以Java项目为例,我的配置文件如下:
| 1 | 新建一个应用并设置一个名称 | 
注意: 这里的配置文件一定要在末尾加上 [supervisord] 不然启动会失败
3、载入配置文件
| 1 | supervisorctl reload | 
然后就可以观察项目是否启动了,至此教程结束