我在开发流浪机器中全新安装了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
但是将其更改为以下内容,似乎并没有创建任何生产者,包括检查我正在消费的队列上的当前消费者。
# /etc/supervisord.conf
# ...
[supervisord]
logfile=/var/log/supervisor/supervisord.log
user=root
[include]
files = /abs/path/to/more/confs/*.conf
与...
# /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
从下面可以看到,配置文件都共享相同的权限。但即使制作了包含的配置文件 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
日志文件显示正常启动信息(在调试级别),并且没有涉及包含任何文件的错误(权限更改之前和之后)。
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
任何建议都非常感谢。
问题在于,在
[include]
部分,主管期望的是相对路径,而不是我们假设的绝对路径。
[include]
files = ../../home/myuser/supervisor_confs/*.conf
在这个例子中,我的conf文件是
/etc/supervisor/supervisord.conf
。
以及我想要包含的每个程序的其他conf文件保存在
/home/myuser/supervisor_confs/
。我必须将路径调整为要在[include]
部分中使用的相对路径