Supervisorctl不尊重我的配置

时间:2013-06-09 00:55:36

标签: supervisord

我在/home/david/conf/supervisor.conf中设置了以下内容:

[unix_http_server]
file=/home/david/tmp/supervisor.sock

[supervisord]
logfile=/home/david/tmp/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB                    ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10                       ; (num of main logfile rotation backups;default 10)
loglevel=info                            ; (log level;default info; others: debug,warn,trace)
pidfile=/home/david/tmp/supervisord.pid  ; (supervisord pidfile;default supervisord.pid)
nodaemon=false                           ; (start in foreground if true;default false)
minfds=1024                              ; (min. avail startup file descriptors;default 1024)
minprocs=200
childlogdir=/home/david/tmp

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///home/david/tmp/supervisor.sock

并开始

$ supervisord -c /home/david/conf/supervisor.conf

但是,supervisorctl仍然使用默认http://localhost:9001作为serverurl

$ supervisorctl
http://localhost:9001 refused connection
supervisor>

我检查了/home/david/tmp,文件supervisord.logsupervisord.pid确实存在。

4 个答案:

答案 0 :(得分:87)

您也应该使用supervisorctl运行-c。从文档(我的重点):

  

Supervisor配置文件通常以命名方式命名   supervisord.conf。它由supervisordsupervisorctl使用。 如果   应用程序是在没有-c选项的情况下启动的(选项是哪个   用于告诉应用程序配置文件名   显式),应用程序将查找名为的文件   supervisord.conf位于以下位置,在指定的位置   订购。它将使用它找到的第一个文件。

     
      
  1. $CWD/supervisord.conf
  2.   
  3. $CWD/etc/supervisord.conf
  4.   
  5. /etc/supervisord.conf
  6.   

答案 1 :(得分:0)

要添加上面的有效答案,请确保将要监视的应用程序的配置文件放在supervisor的配置文件夹下,作为名为conf.d的子文件夹。这取决于您使用什么方法安装supervisor,默认包管理器或easy_install。

答案 2 :(得分:0)

作为解决方案,您可以对配置文件进行符号链接。 像Mac OS一样:

sudo ln -sv /usr/local/etc/supervisord.ini /etc/supervisord.conf

答案 3 :(得分:0)

  • MacOS 中,使用brew安装
 brew install supervisor
  • 然后转到/usr/local/etc/supervisord.ini并评论以下几行:
;[unix_http_server]
;file=/usr/local/var/run/supervisor.sock   ; the path to the socket file

并取消注释以下行:

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
  • 最后重新启动守护程序:
brew services restart supervisor

这就是您所需要的。