0%

使用Supervisor守护进程

queue:work进程老是因为各种原因停止,需要一个进程守护工具。

sudo apt-get install supervisor

在 /etc/supervisor/conf.d 目录创建配置文件。

我创建了一个 laravel-imexport-queue.conf 用来启动和监视 queue:work 进程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[program:laravel-imexport-queue]
process_name=%(program_name)s_%(process_num)02d

# 程序启动后执行的命令
command=/www/server/php/74/bin/php /www/wwwroot/xx/artisan queue:work --queue=xx --timeout=0

# Supervisor 启动时自动启动该程序
autostart=true

# 指定进程挂掉时 Supervisor 自动重启进程
autorestart=true

user=root

# 运行和监控的进程数量
numprocs=1

# 将 stderr 错误输出重定向到 stdout 标准输出
redirect_stderr=true

# 将进程的 stdout 标准输出写入文件中,设为NONE不会创建任何日志文件。
stdout_logfile=/www/wwwroot/xx/storage/logs/queue-worker.log

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看所有进程的状态
supervisorctl status

# 配置文件修改后可以使用该命令加载新的配置
supervisorctl update

# 重新启动所有进程
supervisorctl reload



操作指定进程:

# 停止laravel-imexport-queue
supervisorctl stop laravel-imexport-queue

# 启动laravel-imexport-queue
supervisorctl start laravel-imexport-queue

# 重启laravel-imexport-queue
supervisorctl restart laravel-imexport-queue

欢迎关注我的其它发布渠道