前言
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 |
然后就可以观察项目是否启动了,至此教程结束