Supervisor 进程管理工具使用

2023-11-27  本文已影响0人  左诗右码

Supervisor 是一个进程管理工具,当进程中断的时候 supervisor 能自动重新启动它,同时,它也是一个客户端/服务器系统,允许用户在类 unix 操作系统上控制多个进程。

Supervisor 是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动重启。

Supervisor 是通过 fork/exec 的方式把这些被管理的进程当作 Supervisor 的子进程来启动,这样只要在 Supervisor 的配置文件中,把要管理的进程的可执行文件的路径写进去即可。

接下来我们重点学习它的使用方式。

Supervisor 一些常用命令

命令 说明
supervisorctl reload 重启 supervisor (添加完自己的配置信息后,可以执行此命令来重新加载 supervisor 配置文件)
supervisorctl status <程序名> 查看状态,后面不加程序名的话是查看所有任务状态
supervisorctl shutdown 关闭所有任务
supervisorctl start <程序名> 启动任务
supervisorctl stop <程序名> 关闭任务

在阿里云 CentOS 7.6 上

yum install -y supervisor
cat /etc/supervisord.conf

# 这里决定了你所需要写的进程配置文件格式,这里是 ini ,因此我们也必须写成 ini 后缀的文件
[include]
files = supervisord.d/*.ini

vim /etc/supervisord.d/larablog.ini


[program:larablog-horizon]
process_name=%(program_name)s
command=php /www/wwwroot/larablog/artisan horizon
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/www/wwwroot/larablog/storage/logs/worker.log

sudo supervisorctl update

如果遇到报错 error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224 则执行以下命令

sudo supervisord -c /etc/supervisord.conf

# 再次尝试执行重载配置命令
sudo supervisorctl update

sudo supervisorctl -c /etc/supervisord.conf
sudo supervisorctl status

在 ubuntu 上

sudo apt-get install supervisor

vim /etc/supervisor/conf.d/larablog.conf


[program:larablog-horizon]
process_name=%(program_name)s
command=php /www/wwwroot/larablog/artisan horizon
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/www/wwwroot/larablog/storage/logs/worker.log

sudo supervisorctl update
sudo supervisorctl status
sudo supervisorctl start <process-name>

# 比如启动名称为 larablog-horizon 的进程
sudo supervisorctl start larablog-horizon
上一篇 下一篇

猜你喜欢

热点阅读