У меня supervisord 3.0a8 установлен из системного пакета на ubuntu 10.04 (64 бит). Служба супервизора работает, но не запускает настроенные программы. Интересно, что эта точная конфигурация работает в другой системе и работает должным образом.
Основной файл конфигурации выглядит так:
; /etc/supervisor/supervisord.conf
[unix_http_server]
chmod=0700
file=/var/run/supervisor.sock
[supervisord]
logfile=/var/log/supervisor/supervisord.log
childlogdir=/var/log/supervisor
pidfile=/var/run/supervisord.pid
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[include]
files = /etc/supervisor/conf.d/*.conf
Пример конфигурации программы выглядит так:
; /etc/supervisor/conf.d/sample.conf
[program:sample]
directory=/opt/sample
command=/opt/sample/run.sh
Где /opt/sample/run.sh
является:
#!/bin/bash
while true; do
T=`date`
echo "[$T] Running!" >> /var/log/sample.log
sleep 1
done
И вот дополнительная информация о запущенном экземпляре supervisord:
root@myhost:~# supervisorctl version
3.0a8
root@myhost:~# which supervisorctl
/usr/bin/supervisorctl
root@myhost:~# which supervisord
/usr/bin/supervisord
root@myhost:~# supervisorctl status # NOTE that there's no output!
root@myhost:~# supervisorctl avail
root@myhost:~# service supervisor status
is running
root@myhost:~# ps aux | grep supervisor
root 21740 0.1 0.4 40772 10056 ? Ss 11:28 0:00 /usr/bin/python /usr/bin/supervisord
root 21749 0.0 0.0 7624 932 pts/2 S+ 11:28 0:00 grep --color=auto supervisor
root@myhost:~# cat /var/log/supervisor/supervisord.log
2012-04-26 11:28:22,483 CRIT Supervisor running as root (no user in config file)
2012-04-26 11:28:22,536 INFO RPC interface 'supervisor' initialized
2012-04-26 11:28:22,536 WARN cElementTree not installed, using slower XML parser for XML-RPC
2012-04-26 11:28:22,536 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2012-04-26 11:28:22,539 INFO daemonizing the supervisord process
2012-04-26 11:28:22,539 INFO supervisord started with pid 21740
root@myhost:~# ll /etc/supervisor/conf.d/
total 28
drwxr-xr-x 2 root root 4096 2012-04-26 11:31 ./
drwxr-xr-x 3 root root 4096 2012-04-25 18:38 ../
-rw-r--r-- 1 root root 66 2012-04-26 11:31 sample.conf
root@myhost:~# ll /opt/sample/
total 12
drwxr-xr-x 2 root root 4096 2012-04-26 11:32 ./
drwxr-xr-x 4 root root 4096 2012-04-26 11:31 ../
-rwxr-xr-x 1 root root 97 2012-04-26 11:32 run.sh*
root@myhost:~# python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Любая помощь приветствуется!
Это случается со мной, когда я забываю sudo supervisorctl update
.
Кроме того, установлен ли в /opt/sample/run.sh исполняемый бит?
Я бы добавил
loglevel = отладка
в раздел [supervisord]. Это может помочь. Кажется, include не работает. В статусе supervisorctl должен отображаться ваш скрипт.
попробуйте запустить с параметром -n, и он отправит команды отладки прямо в командную строку. Облегчает процесс отладки.
Являются ли системы точными копиями, т.е. виртуальными клонами друг друга? Убедитесь, что файл исполняемый, чтобы быть уверенным, что в прошлом мне мешал супервизор.