unix:///tmp/supervisor.sock文件不存在

22

使用Ubuntu 16.04 LTS部署我的Python应用程序。已经配置好一切,应用程序可以手动运行。我想通过supervisor将其自动化,已经安装并配置好了supervisor。但是如果我运行:

Supervisor配置文件:

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

supervisorctl reread执行后出现unix:///tmp/supervisor.sock no such file错误。

但是supervisord的状态正在运行中。

有任何想法的人,请帮忙解决。


尝试重新启动supervisord服务。并且发布echo_supervisord_conf的输出。 - Håken Lid
1
这个问题可能更适合在相关的S.E.网站http://unix.stackexchange.com(Unix&Linux)上提问。使用您的Q底部的“flag”链接并要求管理员将其移动。请不要在2个不同的网站上发布相同的问题。在此处发布更多问题之前,请务必阅读http://stackoverflow.com/help/how-to-ask,http://stackoverflow.com/help/dont-ask和http://stackoverflow.com/help/mcve。祝你好运。 - shellter
6个回答

36

运行此命令 sudo service supervisord restart 解决了我的问题。

一些答案建议重新安装,本质上是执行以下操作


我收到了“找不到服务”的错误提示,去掉 d 后没有出现错误,但仍然无法正常工作! - cregox

15

最终通过删除/etc/supervisor/conf.d/下的所有配置文件,并重新安装supervisor解决了问题。


我按照这个链接的步骤进行操作: https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps - Chetan Hireholi
配置文件肯定会引起那些问题! - cregox

10

我有同样的问题。在阅读了man supervisorctl手册后,我意识到默认文件是/etc/supervisord.conf,而在Ubuntu中它位于/etc/supervisor/supervisord.conf。我使用以下命令创建了一个符号链接:

sudo ln -s  /etc/supervisor/supervisord.conf /etc/supervisord.conf
这解决了我的问题。

编辑:我指的是默认配置文件。 - mcgyver
大家注意一下复制粘贴。我在CentOS上通过pip安装了supervisor,我的supervisor配置文件位于/etc/supervisord/supervisord.conf。 - Ruberoid
在 Fedora 上,我的配置文件必须具有 .ini 扩展名。例如:/etc/supervisord.d/*.ini - Jon Hudson

5

出现这个问题的原因有很多,我发现是由于服务器不断跳闸导致我的监控程序损坏了。

解决方案:首先移除监控程序,然后重新安装。

步骤:

sudo apt-get remove supervisor

sudo apt-get remove --auto-remove supervisor

sudo apt-get purge supervisor

sudo apt-get purge --auto-remove supervisor

以上链接可以在此找到:

https://www.howtoinstall.co/zh/ubuntu/trusty/supervisor?action=remove


3

可能有一个配置文件存在语法错误。

例如,验证是否缺少[program]子句。

删除conf.d目录中的每个文件并重新启动supervisor以隔离问题文件。


如果没有设置问题,这是正确的解决方案。这通常表现为 supervisorctl 没有初始化,复制了错误的语法错误文件。您可以检查 syslog 获取更多详细信息。 - Vish

3

Ubuntu的supervisor软件包(3.3.1-1.1)的配置文件位于/etc/supervisor/supervisord.conf

由于某些原因(我不知道为什么),似乎还有另一个配置文件在/etc/supervisord.conf中,而supervisorctl更喜欢使用那个文件。

您可以显式地定义supervisorctl的配置文件位置:

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

或者直接删除/etc/supervisord.conf文件。


这正是我所寻找的。救了我的命。 - Fred Lai
完成这些操作后,最好执行Supervisord命令来创建supervisor.sock。 - Ehsan Ahmadi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接