Supervisorctl 在挂起时不会自动重启守护进程队列工作者

Supervisorctl does not auto-restart daemon queue worker when hanging

我让 supervisorctl 使用此配置管理一些守护进程队列工作者:

[program:jobdownloader]
process_name=%(program_name)s_%(process_num)03d
command=php /var/www/microservices/ppsatoms/artisan queue:work ppsjobdownloader --daemon --sleep=0
autostart=true
autorestart=true
user=root
numprocs=50
redirect_stderr=true
stdout_logfile=/mnt/@@sync/jobdownloader.log

有时候有些worker像挂了(运行但是停止获取队列消息)supervisorctl不会自动重启,只好监控手动重启

配置有问题吗?我可以做些什么来防止这种情况在未来发生?

更新:

运行 作为正常进程(非守护进程)的进程,以便 supervisorctl 可以在他们发出退出代码后重新启动工人:

[program:jobdownloader]
process_name=%(program_name)s_%(process_num)03d
command=php /var/www/microservices/ppsatoms/artisan queue:work ppsjobdownloader --sleep=0
autostart=true
autorestart=true
user=root
numprocs=50
redirect_stderr=true
stdout_logfile=/mnt/@@sync/jobdownloader.log