我正在尝试为laravel设置队列侦听器,但似乎无法使主管正常工作。运行supervisorctl reload
时出现以下错误:
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 228
文件存在。如果尝试运行sudo supervisorctl
我会得到这个
unix:///var/run/supervisor.sock no such file
。
我尝试过重新安装主管,但也没有用。不知道该怎么做。
我正在运行Laravel Homestead(Ubuntu 16.04)。
service supervisor status
的结果:
vagrant@homestead:~/Code$ sudo service supervisor status
● supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2016-12-22 11:06:21 EST; 41s ago
Docs: http://supervisord.org
Process: 23154 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS)
Process: 23149 ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf (code=exited, status=2)
Main PID: 23149 (code=exited, status=2)
答案 0 :(得分:12)
2020更新
在使用以下解决方案之前,请尝试在终端中运行
npm cache clean
。我发现问题有时在sudo service supervisor start
不在运行时发生,没什么复杂的。
我正在使用supervisor
。我遇到了同样的问题,重新安装主管并不能解决我的问题。
我最终完全删除了conf.d目录,并使用新的配置重新创建它。 在尝试此操作之前,请确保备份配置:
Ubuntu 18.04
sudo rm -rf /etc/supervisor/conf.d/
sudo mkdir /etc/supervisor/conf.d
sudo nano /etc/supervisor/conf.d/my-file.conf
重新开始工作。
答案 1 :(得分:1)
检查 supervisord.conf 文件。
查找以下内容:
[unix_http_server]
file=/path/to/supervisor.sock/file ; (the path to the socket file)
chmod=0700 ; sockef file mode(default 0700)
转到上述路径,然后检查文件是否存在。
如果存在,请尝试重新安装主管。
如果没有,则使用命令行或文件浏览器GUI搜索 supervisor.sock 文件。
使用cp命令或GUI将在上一步中找到的文件复制到[unix_http_server]中指定的位置。
对我来说,/ run文件夹中有 supervisor.sock 。
答案 2 :(得分:1)
我遇到了一个非常相似的问题(Ubuntu 18.04),并搜索了相似的线程,但无济于事,因此请在此处回答一些更全面的答案。
缺少袜子文件或套接字错误仅表示主管未运行。如果简单的重启不起作用,则可能是1.未安装,或者2.无法启动。在我的情况下,直到我运行以下命令(-n在前台运行)之前,什么都没有记录到supervisor.log文件中,所以我才知道为什么失败了,只是发现一个项目的剩余配置文件被删除了,我错过了。
/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
一旦我删除了conf.d文件夹中的坏文件/剩余文件,并以sudo service supervisor start
进行备份,一切正常。
您可以采取一些综合步骤。
dpkg -l | grep supervisor
(如果未重新安装),sudo apt install supervisor
systemctl stop supervisor
和ps aux | grep supervisor
可以找到kill -9 PID
徘徊的主管程序。/etc/supervisor/supervisor.conf
中,并且没有语法错误?从软件包重新安装将纠正此问题。sudo service supervisor start
正确启动,则您的项目.conf文件中可能存在错误。sudo service supervisor status
检查状态。sudo service supervisor restart
。确保检查之间的sudo service supervisor status
。如果失败,您将知道哪个.conf文件有问题,可以要求特定的帮助。supervisorctl status
运行,如果不是,则以supervisorctl start all
开始。答案 3 :(得分:1)
我尝试使用官方文档后面对 python file not found an error, code=exited, status=2
但仍然相同。
我为我的 Laravel 应用程序尝试了很多解决方案。
但最后,我尝试了我的解决方案。
以下是代码示例:
[program:dev-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/example.com/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=ubuntu
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/html/example.com/storage/logs/laravel.log
stopwaitsecs=3600
参考:https://laravel.com/docs/7.x/queues#supervisor-configuration
答案 4 :(得分:1)
如果通过运行 sudo service supervisor status
会得到以下结果:
ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf (code=exited, status=2)
尝试运行/usr/bin/supervisord
,它会给你明确的信息告诉你错误在哪里。
答案 5 :(得分:1)
关于答案都没有帮助我。
问题是我没有关注supervisor documentation。
我没有做的一个步骤是运行 echo_supervisord_conf
命令来制作配置文件。
我为所做的步骤 Ubuntu 18.04:
安装主管(没有 pip):
sudo apt-get install supervisor
echo_supervisord_conf > /etc/supervisord.conf
(具有 root 访问权限:先运行 sudo -i
,然后运行 echo_supervisord_conf > /etc/supervisord.conf
)(Depends: python-pkg-resources, init-system-helpers (>= 1.18~), python-meld3, python:any (<< 2.8), python:any (>= 2.7.5-5~)
在这些文件中:/usr/bin/supervisord
| /usr/bin/supervisorctl
| /usr/bin/echo_supervisord_conf
。
只需将第一行从 #!/usr/bin/python
更改为 #!/usr/bin/python2
supervisord
希望有所帮助!
答案 6 :(得分:0)
我最终完全删除了主管,重新安装并重写了我的配置文件。我必须在这个过程中做错了,并且无法抓住它。
答案 7 :(得分:0)
你可以尝试
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
答案 8 :(得分:0)
当您在主管目录中时,应运行sudo service supervisor start
。
为我工作。
答案 9 :(得分:0)
我遇到了这个问题,因为我们使用supervisorctl来管理gunicorn。我的问题的根源与主管(正在处理其他进程一样好)或python sock.py文件(文件在那里,权限正确)无关,而与gunicorn配置文件/etc/supervisor/conf.d/gunicorn.conf
没有关系。此配置文件由带有环境变量的源代码控制的模板管理,当我们在服务器上更新模板时,模板变量永远不会被实际数据替换。因此,例如gunicorn.conf文件中的内容读取为user={{ user }}
而不是user=gunicorn
。当主管在运行supervisorctl start gunicorn
时尝试解析此配置时,它将因此套接字错误而崩溃。修复gunicorn.conf文件解决了主管问题。
答案 10 :(得分:0)
您可以尝试删除超级用户的所有相关文件夹并完全卸载超级用户。
sudo rm -rf /var/log/supervisor/supervisord.log
sudo rm -rf /etc/supervisor/conf.d/
完成此操作后,请通过以下方式重新安装主管
sudo apt install supervisor
现在,您可以正常运行了。检查
sudo systemctl status supervisor