ubuntu 启动supervisorctl在laravel队列工作进程上给出ERROR(spawn error)

mi7gmzs6  于 2023-06-21  发布在  其他
关注(0)|答案(8)|浏览(288)

所以我已经安装了Supervisor,它似乎正在运行。我已经将队列工作器的配置文件放在/etc/supervisor/conf.d/laravel-worker.conf中
看起来是这样的

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html queue:work database --sleep=3 --tries=2 --daemon
autostart=true
autorestart=true
numprocs=4
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/laravel.log

我的supervisord.conf看起来像这样

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0775                       ; sockef file mode (default 0700)
chown=root

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
 ; added by defining them in separate rpcinterface: sections
 [rpcinterface:supervisor]
 supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

当我尝试启动进程时,我得到错误- ERROR(生成错误)。
当我查看日志文件时它显示-

2017-05-28 22:21:20,697 INFO exited: laravel-worker_01 (exit status 0; not expected)
2017-05-28 22:21:20,702 INFO exited: laravel-worker_00 (exit status 0; not expected)
2017-05-28 22:21:20,704 INFO exited: laravel-worker_02 (exit status 0; not expected)
2017-05-28 22:21:20,706 INFO exited: laravel-worker_03 (exit status 0; not expected)
2017-05-28 22:21:23,711 INFO spawned: 'laravel-worker_00' with pid 16280
2017-05-28 22:21:23,713 INFO spawned: 'laravel-worker_01' with pid 16281
2017-05-28 22:21:23,715 INFO spawned: 'laravel-worker_02' with pid 16282
2017-05-28 22:21:23,719 INFO spawned: 'laravel-worker_03' with pid 16283
2017-05-28 22:21:23,772 INFO exited: laravel-worker_02 (exit status 0; not expected)
2017-05-28 22:21:23,774 INFO gave up: laravel-worker_02 entered FATAL state, too many start retries too quickly
2017-05-28 22:21:23,774 INFO exited: laravel-worker_01 (exit status 0; not expected)
2017-05-28 22:21:23,776 INFO gave up: laravel-worker_01 entered FATAL state, too many start retries too quickly
2017-05-28 22:21:23,776 INFO exited: laravel-worker_03 (exit status 0; not expected)
2017-05-28 22:21:23,777 INFO gave up: laravel-worker_03 entered FATAL state, too many start retries too quickly
2017-05-28 22:21:23,777 INFO exited: laravel-worker_00 (exit status 0; not expected)
2017-05-28 22:21:24,778 INFO gave up: laravel-worker_00 entered FATAL state, too many start retries too quickly

我已经验证了我的配置文件中的所有文件都存在。我不确定我在laravel-worker. conf中使用的配置是否正确。我已经搜索了文档和其他stackoverflow线程,但无法找到解决方案

i34xakig

i34xakig1#

我通过重新启动Supervisor解决了问题

sudo service supervisor reload
pgvzfuti

pgvzfuti2#

所以问题显然是我的laravel-worker我需要通过添加'/artisan'来完成命令路径,就像这样-

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work database --sleep=3 --tries=2 --daemon
hyrbngr7

hyrbngr73#

同样的问题,我也面临着,在指定队列名称正确的问题解决

command=php /home/vagrant/code/prject1/artisan queue:work redis --queue=email --sleep=3 --tries=1 --daemon

这是我的工作文件laravel-worker.conf
execution

s3fp2yjn

s3fp2yjn4#

你需要在你的conf中添加artisan并在你的conf文件中添加user
例如

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/site.com/kernel/artisan queue:work --sleep=3 -- 
tries=3
autostart=true
autorestart=true
user=root
numprocs=10
redirect_stderr=true
stdout_logfile=/home/site.com/kernel/worker.log
zz2j4svz

zz2j4svz5#

如果你使用的是Laravel 7或更低版本,如果在命令中传递了选项,你可能会遇到错误。在我的情况下,删除这些选项解决了这个问题。
更改此行:
command=php /var/www/html queue:work database --sleep=3 --tries=2 --daemon
对此:
command=php /var/www/html queue:work

wi3ka0sx

wi3ka0sx6#

您可以通过查看日志文件stdout_logfile=/var/www/html/storage/logs/laravel.log来找出错误的类型

tpgth1q7

tpgth1q77#

我在/config文件夹中的配置文件中有一个错误时得到了这个错误。

6yt4nkrj

6yt4nkrj8#

或者如果service supervisor reload不工作,可以使用service supervisor restart

相关问题