Laravel Sail中Supervisor D无法使用问题求助
在Laravel Sail中配置Supervisor时触发FileNotFoundError的排查与解决
问题描述
按照Laravel官方文档配置Supervisor管理队列,完成配置后在Sail shell中执行supervisorctl reread命令,触发以下错误:
error: <class 'FileNotFoundError'>, [Errno 2] No such file or directory: file: /usr/lib/python3/dist-packages/supervisor/xmlrpc.py line: 560
尝试过相关GitHub issue中的所有建议,均未解决问题。
排查与解决方向
- 确认配置文件存放路径:Sail容器内Supervisor的配置文件默认需放在
/etc/supervisor/conf.d/目录下,执行ls /etc/supervisor/conf.d/检查你的队列配置文件是否存在于此。若路径错误,Supervisor会因找不到配置文件抛出异常。 - 校验配置文件语法与路径:执行
supervisord -c /etc/supervisor/supervisord.conf -n启动Supervisor并查看实时日志,该命令会直接暴露配置文件中的语法错误、命令路径错误等问题,比reread更易定位根源。 - 修正队列命令的容器内路径:配置文件中
command字段必须使用容器内的绝对路径,例如Laravel队列启动命令应为php /var/www/html/artisan queue:work,切勿使用本地环境路径。 - 重启Supervisor服务:修改配置后先执行
service supervisor restart重启服务,再依次执行supervisorctl reread和supervisorctl update刷新配置。 - 确认Supervisor依赖完整性:执行
supervisord --version确认Supervisor已正确安装,若未安装或依赖缺失,可在Sail shell中执行apt-get update && apt-get install -y supervisor重新安装。
内容的提问来源于stack exchange,提问作者sp92
相关产品推荐
相关产品推荐

