Supervisorctl不尊重我的configuration

我在/home/david/conf/supervisor.conf设置了以下/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 :

 $ 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确实存在。

你也应该用-c来运行-c 。 从文档(我的重点):

Supervisorconfiguration文件通常被命名为supervisord.conf 。 它由supervisordsupervisorctl如果任一应用程序在没有-c选项的情况下启动 (用于显式指定configuration文件名的选项),应用程序将按照指定的顺序在以下位置查找名为supervisord.conf的文件。 它将使用它find的第一个文件。

  1. $CWD/supervisord.conf
  2. $CWD/etc/supervisord.conf
  3. /etc/supervisord.conf

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

作为解决scheme,您可以使configuration文件的符号链接。 像这样的Mac OS:

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