KING 博主等级

一帆风顺 ⛵️⛵️⛵️

supervisor 安装与使用

钟晓川
2024-12-24 / 0 点赞 / 76 阅读

supervisor 是一个进程控制系统,它可以监控和控制Linux/Unix操作系统上的进程。supervisor 会在进程意外退出时自动重启它们,并且可以用来确保进程持续运行。

以下是 supervisor 的一些基本用法:

安装 supervisor

在基于Debian的系统上,可以使用以下命令安装 supervisor:

sudo apt-get install supervisor

在基于RHEL的系统上,可以使用以下命令安装 supervisor:

sudo yum install supervisor

配置 supervisor

supervisor 的配置文件通常位于 /etc/supervisor/supervisord.conf。为了管理特定的进程,通常会在 /etc/supervisor/conf.d/ 目录下创建一个单独的配置文件。

例如,创建一个名为 myprocess.conf 的配置文件来监控 myprocess 进程:

[program:deploy]
command=/usr/bin/python3 /opt/deploy.py
autostart=true
autorestart=true
stderr_logfile=/var/log/deploy.err.log
stdout_logfile=/var/log/deploy.out.log
user=www-data  ; 如果需要,可以指定运行脚本的用户
environment=PYTHONPATH="/opt/deploy"  ; 如果需要设置环境变量

确保 command 路径指向正确的 Python 解释器和脚本位置。如果脚本需要特定的环境变量,你可以在配置文件中设置。

启动 supervisor

启动 supervisor 服务并更新配置:

sudo systemctl start supervisor
sudo supervisorctl reread
sudo supervisorctl update

检查进程状态

你可以通过以下命令检查进程的状态:

sudo supervisorctl status deploy

如果一切配置正确,deploy 进程应该会显示为正在运行

注意事项
确保脚本有执行权限:chmod +x /opt/deploy.py
如果脚本需要特定的环境变量或工作目录,确保在配置文件中设置。
如果脚本运行时出现权限问题,可能需要以合适的用户身份运行,如上面配置中的 user=www
日志文件路径需要确保 supervisor 用户有写入权限

管理 supervisor 进程

使用 supervisorctl 命令来管理进程:

  • 启动进程:sudo supervisorctl start myprocess
  • 停止进程:sudo supervisorctl stop myprocess
  • 重启进程:sudo supervisorctl restart myprocess
  • 查看状态:sudo supervisorctl status

supervisor 会自动监控配置中的进程,并在它们退出时尝试重启。如果需要更详细的监控,比如在进程挂起时发送通知,可能需要结合其他监控工具或编写自定义脚本。

supervisor 是一个强大的工具,适用于需要确保关键服务持续运行的生产环境。通过适当的配置,它可以大大简化进程管理任务。

0