Supervisor HTTP 服务器端口问题

66 supervisord

我有主管设置来管理一些流程。当我启动我的服务器时它工作得很好,但是当我停止它并尝试再次启动它时它失败并给我这个错误消息:

 * 启动 Supervisor 守护进程管理器...
错误:另一个程序已经在监听我们的一个 HTTP 服务器配置为使用的端口。在启动 supervisord 之前先关闭这个程序。
如需帮助,请使用 /usr/bin/supervisord -h
   ...失败!

我在端口 80 上运行 nginx,在端口 8000、8001、8002、8003 上运行 4 个 Web 服务器

有谁知道发生了什么?

当我重新启动时一切正常。

小智 93

刚刚也遇到了这个。我通过执行以下任一操作来修复它:

sudo unlink /tmp/supervisor.sock

sudo unlink /var/run/supervisor.sock
Run Code Online (Sandbox Code Playgroud)

.sock文件在/etc/supervisord.conf [unix_http_server]文件配置值中定义(默认为/tmp/supervisor.sock/var/run/supervisor.sock)。

希望这对未来的人有所帮助。

  • @sdolan 哇它帮助了我!我删除了 /var/run/supervisor.sock 并摆脱了 Debian Stable 上的错误 (12认同)
  • 在运行 unlink 之前运行 find / -name supervisor.sock - 在 debian 系统上它位于 /var/run/,但你的 unlink 解决方案对我有用 (3认同)
  • 为什么主管不以错误代码终止以允许脚本自动取消链接并重试? (2认同)
  • 在 unlink 命令之后,我试图重新启动主管,但现在 .sock 丢失了。```unix:///tmp/supervisor.sock 没有这样的文件```。那我还需要做什么。 (2认同)

小智 8

我会使用 lsof 找出正在侦听这些端口的进程。

lsof -i tcp | grep LISTEN

一旦你弄清楚它是什么过程,那就是成功的一半。