主管没有这样的文件socket.py

时间:2016-12-22 15:27:08

标签: laravel ubuntu homestead supervisor

我正在尝试为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)

11 个答案:

答案 0 :(得分:12)

2020更新

在使用以下解决方案之前,请尝试在终端中运行npm cache clean 。我发现问题有时在sudo service supervisor start不在运行时发生,没什么复杂的。

我正在使用supervisor。我遇到了同样的问题,重新安装主管并不能解决我的问题。

我最终完全删除了conf.d目录,并使用新的配置重新创建它。 在尝试此操作之前,请确保备份配置

  1. Ubuntu 18.04
  2. sudo rm -rf /etc/supervisor/conf.d/
  3. sudo mkdir /etc/supervisor/conf.d
  4. 复制并粘贴您的配置到新文件中。

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进行备份,一切正常。

您可以采取一些综合步骤。

  1. 是否安装了主管? dpkg -l | grep supervisor(如果未重新安装),sudo apt install supervisor
  2. 所有主管的实例是否都已停止?依次systemctl stop supervisorps aux | grep supervisor可以找到kill -9 PID徘徊的主管程序。
  3. supervisor.conf是否在正确的位置/etc/supervisor/supervisor.conf中,并且没有语法错误?从软件包重新安装将纠正此问题。
  4. 将conf.d /中的特定文件暂时移出该文件夹,以尝试开始并没有其他配置文件。如果sudo service supervisor start正确启动,则您的项目.conf文件中可能存在错误。
  5. 使用sudo service supervisor status检查状态。
  6. 将.conf文件一个接一个地移回conf.d /,然后重新启动sudo service supervisor restart。确保检查之间的sudo service supervisor status。如果失败,您将知道哪个.conf文件有问题,可以要求特定的帮助。
  7. 检查所有内容是否都以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):

  1. sudo apt-get install supervisor
  2. echo_supervisord_conf > /etc/supervisord.conf(具有 root 访问权限:先运行 sudo -i,然后运行 ​​echo_supervisord_conf > /etc/supervisord.conf
  3. 将python依赖更改为python2
<块引用>

(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

  1. 运行supervisord
  2. 完成

希望有所帮助!

答案 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