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

 * Starting Supervisor daemon manager...
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
   ...fail!


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

有人对发生的事情有任何了解吗?

重新启动后一切正常很好。

#1 楼

刚好碰到这个。我通过以下任一方法对其进行了修复:
sudo unlink /tmp/supervisor.sock

sudo unlink /var/run/supervisor.sock

.sock文件是在/etc/supervisord.conf [unix_http_server]文件配置值中定义的(默认值为/tmp/supervisor.sock/var/run/supervisor.sock)。
希望这对以后的工作有所帮助。

评论


@sdolan哇,它帮助了我!我删除了/var/run/supervisor.sock并摆脱了Debian Stable上的错误

– Abhishek A
2010年8月4日在14:08

在运行取消链接之前运行find / -namesupervisor.sock-在debian系统上,它位于/ var / run /中,但是您的取消链接解决方案对我有用

– AndrewPK
2011年6月13日21:55

主管为什么不以错误代码终止以允许脚本自动解除链接并重试?

–塔尔·魏斯(Tal Weiss)
2013年12月16日上午9:58

小心点取消链接后,运行“ ps -ef | grep超级用户”,您将看到旧进程仍在运行。您可能还想“杀死”。编辑:这是我在使用Ubuntu 14.04时的情况。

– jball037
16-2-18在22:41



在执行unlink命令之后,我尝试重新启动超级用户,但是现在缺少.sock。 unix:///tmp/supervisor.sock没有此类文件。所以我还需要做什么。

–罗伯特
17年4月19日在12:22

#2 楼

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

lsof -i tcp | grep LISTEN

一旦确定了什么过程,就完成了一半。