Linux 进程管理工具 supervisor 的安装及使用教程

2020年2月3日15:02:36 评论 342

Supervisor 是用 Python 实现的一个进程管理工具,可以很方便用来管理进程,包括启动、关闭及重启等操作,经常被用来监听 web 服务,一旦服务挂掉,可以让服务自动重启。Supervisor 管理的程序都必须是非 daemon 程序。

使用方法

安装supervisor

$ yum install supervisor

配置supervisor

$ vi /etc/supervisord.conf

将文件末尾:

[include]
files = supervisord.d/*.ini

修改为:

[include]
files = supervisord.d/*.conf

新建文件

为了方便管理,在自定义配置文件目录下,创建项目的配置文件。

$ cd /etc/supervisord.d/
$ vim leanote.conf #新建一个自定义配置文件

其中内容为:

[program:leanote]                    #程序名
command=bash /opt/leanote/run.sh     #需要执行的命令
autostart=true                       #是否跟随supervisor一起启动
autorestart=true                     #如果该程序挂了,是否重新启动
startsecs=10                         #自动重启间隔
stdout_logfile=/var/log/leanote.log  #终端标准输出重定向文件
stdout_logfile_maxbytes=2MB          #文件最大大小
stdout_logfile_backups=30            #文件备份最大数量
stdout_capture_maxbytes=2MB
stderr_logfile=/var/log/leanote.log  #终端错误输出重定向文件
stderr_logfile_maxbytes=2MB
stderr_logfile_backups=30
stderr_capture_maxbytes=2MB

启动服务

使用默认配置:

$ supervisord

或者指定配置文件:

$ /usr/bin/supervisord -c /etc/supervisord.conf

设置为开机自动启动

$ systemctl enable supervisord.service

一些常用命令

启动某个进程(假设进程名为 leanote)

supervisorctl stop leanote

停止某个进程(假设进程名为 leanote)

supervisorctl stop leanote

重启某个进程(假设进程名为 leanote)

supervisorctl restart leanote

停止全部进程

supervisorctl stop all

重新载入

supervisorctl reload

更新

supervisorctl update

结束语

Supervisord 是一个非常好用的进程管理工具,使用 Supervisord 有一个前提条件,那就是进程必须以非 daemon 的方式启动。例如:管理 nginx 的话,必须在 nginx 的配置文件里添加一行设置 daemon off,让 nginx 以非 daemon 的方式启动。

本文已通过「原本」原创作品认证,未经作者授权请勿直接转载,负责将依法追究其法律责任。
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: