Linux使用supervisor管理进程

Ubuntu安装

sudo apt-get install supervisor

查看是否安装成功

pgrep supervisord

输出进程号表示安装成功

配置

打开配置文件

配置文件一般在这个位置

vim /etc/supervisor/supervisord.conf 

配置文件最后一行:

[include]
files = /etc/supervisor/conf.d/*.conf

也就是说配置文件会引入/etc/supervisor/conf.d/目录下所有conf后缀的文件.

创建自定义配置文件

可以在/etc/supervisor/conf.d/下建立文件test.conf

; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名
[program:test] 
directory = /usr/local/bin            ; 程序的启动目录
command=/usr/local/bin/ipfs daemon    ; 启动命令 最好绝对路径
autostart = true                      ; 在 supervisord 启动的时候也自动启动
numprocs=1                            ; 默认为1
process_name=%(program_name)s         ; 默认为 %(program_name)s,即 [program:x] 中的 x
user=root                             ; 使用 root 用户来启动该进程
autorestart=true                      ; 程序崩溃时自动重启,重启次数是有限制的,默认为3次
redirect_stderr=true                  ; 重定向输出的日志
stdout_logfile = /var/log/supervisord/tornado_server.log
loglevel=info

要把stdout_logfile修改为已创建的日志文件路径,supervisor不会自动创建文件

保存配置文件,重启

sudo supervisorctl reload

加入开机自启

利用命令启动服务程序

supervisord -c /etc/supervisord.conf

使用下面的命令将supervisor加入开机自启:

systemctl enable supervisord.service

但错误提示不存在supervisord.service文件
于是尝试自己在/etc/systemd/system文件夹下创建supervisord.service服务文件,文件内容如下:

[Unit]
Description=Supervisor process control system
Documentation=http://supervisord.org

[Service]
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

假设supervisord的可执行文件位于/usr/bin/supervisord,配置文件位于/etc/supervisord.conf。根据自己的实际路径进行调整即可

你可能感兴趣的:(linux,进程)