Supervisor 进程管理的安装和使用
前言
Supervisor
是用 Python
开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon
,并监控进程状态,异常退出时能自动重启。它是通过 fork/exec
的方式把这些被管理的进程当作 supervisor
的子进程来启动,这样只要在 supervisor
的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor
还提供了一个功能,可以为 supervisord
或者每个子进程,设置一个非 root
的 user
,这个 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
如图:
从上图中可以看到,配置文件中引入了 /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
然后就可以观察项目是否启动了,至此教程结束
正文到此结束
- 本文标签: supervisord deploy
- 版权声明: 本站原创文章,于2021年01月13日由犯二青年发布,转载请注明出处