supervisor简介
supervisor常见于管理进程,例如asgi、celery、nginx等服务均可以通过supervisor管理进程。
1. 安装supervisor
yum install python3-supervisor
echo_supervisord_conf >/etc/supervisord.conf (生成配置文件)
2. 设置开机启动配置
touch /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
3. 开机启动
systemctl daemon-reload (重新reload开机启动所有配置)
systemctl enable supervisord (允许supervisord服务开机自启动)
systemctl start supervisord (启动supervisord)
systemctl status supervisord (查看状态)
4. 新增配置通过supervisor管理进程
mkdir /etc/supervisor/conf.d/
touch super_nginx.conf
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;" # 启动命令
autostart=true #自启动
autorestart=true
startretries=5
numprocs=1
startsecs=0
stderr_logfile=/var/log/supervisor/nginx_stderr.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/supervisor/nginx_stdout.log
stdout_logfile_maxbytes=10MB
配置文件中除了以上设置,还支持directory
(目录)、redirect_stderr
(错误日志重定向输出)、stdout_logfile_backups
(文件备份)、priority
(优先级)等参数设置
5. 总结
以上是个人工作中的总结,希望能给大家有一定的帮助,如有疑问,可联系我哈!