【问题标题】:Supervisor socket error issue [closed]主管套接字错误问题[关闭]
【发布时间】:2013-09-22 10:27:09
【问题描述】:
$ supervisorctl reread
error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567

我正在尝试在我的生产系统上配置主管,但遇到了这个错误。主管日志文件为空。

当我只输入supervisorctl 时,它会抱怨:

http://localhost:9001 refused connection

目前没有在端口 9001 上侦听,AFACT:lsof | grep TCP 没有返回任何内容。

【问题讨论】:

标签: supervisord


【解决方案1】:

您必须先启动 supervisord,然后才能使用 supervisorctl。就我而言:

sudo supervisord -c /etc/supervisor/supervisord.conf
sudo supervisorctl -c /etc/supervisor/supervisord.conf

【讨论】:

  • 您不应该使用 sudo supervisorctl,但我遇到了权限问题,导致我放弃解决该问题
  • 我已经发布了与 kelorek 相同的命令,但上面的命令对我不起作用。
  • 回车后返回什么?
  • 192.168.111.100:9001 拒绝连接
  • 您不必指定 conf 路径。两个工具都应该使用相同的默认路径。如果不是,那么您的安装可能已损坏。
【解决方案2】:

如果您使用自定义路径启动 supervisord,如下所示:

sudo supervisord -c /mypath/supervisord.conf

那你也应该用同样的参数启动 supervisorctl,像这样:

sudo supervisorctl -c /mypath/supervisord.conf

【讨论】:

    【解决方案3】:

    如果您使用 -c 的相对 URL 启动 supervisor,然后尝试从不同的目录运行 supervisorctl,您可能会遇到此问题。

    例如:

    supervisord -c supervisord.conf
    supervisorctl start someapp ## works 
    cd somedirectory
    supervisorctl restart someapp ## http://localhost:9001 refused connection
    

    解决方案是始终使用绝对路径。例如:

    好:

    supervisord -c /etc/supervisor/supervisord.conf
    

    不好:

    supervisord -c supervisord.conf
    

    【讨论】:

      【解决方案4】:

      使用旧版本的 supervisord.conf 文件时也会出现此问题。 较新版本的主管使用不同的配置文件。 上述解决方案不起作用。 在这种情况下,您只需使用

      重新生成配置文件
      echo_supervisord_conf > /etc/supervisord.conf
      

      希望对某人有所帮助。

      【讨论】:

        【解决方案5】:

        请执行以下操作:

        sudo service supervisor start

        发帖说b4一切正常——1b版有问题

        sudo supervisorctl reload

        【讨论】:

          【解决方案6】:

          在带有分发包的 Ubuntu 18.04 中

          当我的服务经理 (systemd) 正在使用配置文件 /etc/supervisor/supervisord.conf

          sudo rm /etc/supervisord.conf

          或者

          sudo mv /etc/supervisord.conf /etc/supervisor/supervisord.conf

          如果你想保留它

          现在你可以运行sudo supervisorctl


          为什么?

          当你运行supervisorctl时,它首先搜索位于/etc/supervisord.conf的配置文件,如果它不存在,它将搜索包的默认文件/etc/supervisor/supervisord.conf这是一个systemd实际运行。

          Systemd始终使用文件/etc/supervisor/supervisord.conf,无论其他文件是否存在。

          您可以通过运行 sudo systemctl status supervisor

          来检查哪个文件正在使用 systemd

          您可以在最后一行看到硬编码配置文件的命令

          【讨论】:

            【解决方案7】:

            supervisordsupervisorctl 都使用带有绝对配置文件路径的 -c,确保两个命令以相同的配置启动。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-02-11
              • 2011-04-07
              • 1970-01-01
              • 2011-07-14
              • 2013-05-23
              相关资源
              最近更新 更多