Centos 使用Supervisor 守护python程序

By | 2021-06-26
  1. 安装 Supervisor
    yum install epel-release
    yum install supervisor
    
  1. 配置 Supervisor
    Supervisor 的配置文件为:/etc/supervisord.conf ,Supervisor 所管理的应用的配置文件放在 /etc/supervisord.d/ 目录中,这个目录可以在 supervisord.conf 中配置。
    将以下内容写入/etc/supervisord.conf
[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = root
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
strip_ansi = false
environment = KEY1="value1",KEY2="value2"

[supervisorctl]
serverurl=http://127.0.0.1:9001

[program:tgbot] 
command=python3 /root/driverbot-5-31.py
priority=1 
numprocs=1 
autostart=true
autorestart=true

启动 Supervisor

supervisord -c /etc/supervisord.conf

通过这种方式启动,服务器重启后 Supervisor 不会自动启动,不建议使用这种方式启动Supervisor。

安装 Supervisor 后,在 /usr/lib/systemd/system/ 目录中会有一个 supervisord.service 文件,内容如下:

如果没有,在该目录中创建一个,用下面的内容替换:

# supervisord service for sysstemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

启用开机启动

systemctl enable supervisord.service

启动Supervisor

systemctl start supervisord.service

查看Supervisor状态

systemctl status supervisord.service