supervisord 不包括 [include] files=/abs/path/to/files/*conf

MrO*_*MrO 6 linux centos rabbitmq symfony supervisord

我在开发无业游民机器中全新安装了 supervisord。我已经设置了 rabbitmq 并从我的 Symfony2 生产者那里接收消息。我正在尝试使用 supervisord 来维护 X 消费者,它们是 Symfony2 控制台命令。

以下配置像梦一样工作。我的消费者创建和维护得很好。

# /etc/supervisord.conf
# ...

[supervisord]
  logfile=/var/log/supervisor/supervisord.log
  user=root

[program:rabbitmq-consume-email]
  command=/usr/bin/php /another/path/app/console rabbitmq:consumer -w email
  numprocs=2
  process_name=%(program_name)s-%(process_num)s
Run Code Online (Sandbox Code Playgroud)

但是将其更改为以下内容似乎不会创建任何生产者,包括检查我正在消费的队列上的当前消费者。

# /etc/supervisord.conf
# ...

[supervisord]
  logfile=/var/log/supervisor/supervisord.log
  user=root

[include]
  files = /abs/path/to/more/confs/*.conf
Run Code Online (Sandbox Code Playgroud)

和 ...

# /abs/path/to/more/confs/rabbitmq-email.conf
# ...

[program:rabbitmq-consume-email]
  command=/usr/bin/php /another/path/app/console rabbitmq:consumer -w email
  numprocs=2
  process_name=%(program_name)s-%(process_num)s
Run Code Online (Sandbox Code Playgroud)

从下面可以看出,配置文件都共享相同的权限。但是即使将包含的配置文件设置为 777(纯粹出于沮丧)我也没有任何进展。

vagrant@box ? ~ ? ls -l /etc/supervisord.conf

  -rw-r--r-- 1 root root 391 Dec  3 14:51 /etc/supervisord.conf

vagrant@box ? ~ ? ls -l /abs/path/to/more/confs/

  -rw-r--r-- 1 root root 197 Dec  3 15:41 rabbitmq-email.conf
  -rw-r--r-- 1 root root 193 Dec  3 15:42 rabbitmq-sms.conf
Run Code Online (Sandbox Code Playgroud)

日志文件显示正常的启动信息(在调试级别)并且没有关于包含任何文件的错误(在权限更改之前和之后。

2015-12-03 16:00:02,225 CRIT Set uid to user 0
2015-12-03 16:00:02,234 DEBG supervisord forked; parent exiting
2015-12-03 16:00:02,235 INFO daemonizing the process
2015-12-03 16:00:02,235 INFO supervisord started with pid 28061
Run Code Online (Sandbox Code Playgroud)

任何建议都非常感谢。

Moh*_*f C 0

问题在于,在[include]部分中,主管期望的是相对路径,而不是我们假设的绝对路径。

[include]
  files = ../../home/myuser/supervisor_confs/*.conf
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我的conf文件是/etc/supervisor/supervisord.conf.

我想要包含的每个程序的其他配置文件保存在/home/myuser/supervisor_confs/. 我必须将路径调整为要在该[include]部分中使用的相对路径