У меня довольно простая конфигурация супервизора:
[program:drape]
process_name=%(program_name)s_%(process_num)02d
command=python /home/ubuntu/drape/workers/drape.py
numprocs=1
autostart=true
autorestart=true
nocleanup=true
stdout_logfile=/home/ubuntu/supervisord.out.log
stdout_logfile_maxbytes=32MB
stderr_logfile=/home/ubuntu/supervisord.err.log
stderr_logfile_maxbytes=32MB
startsecs=180
Я не думаю, что эта конфигурация на самом деле имеет значение, но все равно публикация. Я использую глобальную конфигурацию Stock supervisor. Установил супервизор через стандартный sudo apt-get -y install supervisor
... и на всякий случай:
$ sudo apt-get -y install supervisor
Reading package lists... Done
Building dependency tree
Reading state information... Done
supervisor is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 69 not upgraded.
Однако, когда я пытаюсь запустить супервизор, я получаю совершенно тихий сбой:
ubuntu@...:~$ sudo service supervisor start
ubuntu@...:~$
В журналах ничего нет (в моей глобальной конфигурации logfile=/var/log/supervisor/supervisord.log
) и в "журналах программы" тоже ничего нет (logfile=/var/log/supervisor/supervisord.log.<stream>.log
).
У меня есть аналогичный процесс подготовки для других серверов, на которых работают демоны ruby, поэтому, чтобы копнуть немного дальше, я даже создал очень простой сценарий ruby и сделал chmod 777
дело в том, что нет проблем с разрешением:
$ cat test.rb
while 1
puts "hi"
sleep 1
end
$ ruby test.rb
hi
hi
hi
...
Мой вопрос скорее ... вопрос "где мне искать". Если супервизор ничего не регистрирует, единственное другое место, куда я могу придумать, - это системный журнал, который не указывает мне на что-то безумное.
Просто совет для тех, кто борется с этим, попробуйте запустить демон напрямую
/usr/bin/supervisord
и ты должен на самом деле увидеть ошибки которые останавливают работу супервизора. Сценарий инициализации супервизора бесполезен для поиска ошибок конфигурации.
Тихий сбой происходит из-за сбоя этой строки:
DAEMON=/usr/bin/supervisord
test -x $DAEMON || exit 0
в сценарии инициализации супервизора. Похоже, что по какой-то причине супервизор был установлен в /usr/local/bin/
на этой машине. Супер раздражает, что ничего не печатается ...