Как отладить сервис, который "вылетает" Upstart (супервизор, в данном случае)

У меня работает Ubuntu 14.04. У меня есть несколько служб, настроенных для запуска при загрузке, один из которых является супервизором. Я загружаюсь на уровне выполнения 2, поэтому все службы в /etc/rc2.d/ должен быть запущен при загрузке.

/etc/rc2.d/S20supervisor запускает скрипт запуска супервизора в /etc/init.d/supervisor, как и положено. Я вижу, что скрипт выполняется в /var/log/boot.log, Каждый скрипт, который должен запускаться после него, не запускается. Это как если бы сценарий супервизора "вылетал" Upstart.

Если я редактирую S20supervisor в S10supervisor, что заставляет супервизор выполняться первым, и больше ничего не выполняется. После этого супервизор работает нормально.

Если я редактирую S20supervisor в s99supervisor, что заставляет супервизор исполниться последним, а все остальное выполняется После этого супервизор работает нормально.

Таким образом, кажется, что служба запускается без проблем, но по какой-то причине Upstart блокируется и не выполняет никаких сценариев после сценария супервизора. Зачем?

Как примечание, я могу запустить супервизор вручную без проблем с sudo service supervisor startХотя и со следующим выводом:

$ sudo service supervisor start Starting supervisor: 2017-05-20 00:14:04,435 CRIT Supervisor running as root (no user in config file) 2017-05-20 00:14:04,435 WARN Included extra file "/etc/supervisor/conf.d/graphite.conf" during parsing 2017-05-20 00:14:04,450 INFO RPC interface 'supervisor' initialized 2017-05-20 00:14:04,450 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2017-05-20 00:14:04,450 INFO supervisord started with pid 4462 2017-05-20 00:14:05,455 INFO spawned: 'statsd' with pid 4465 2017-05-20 00:14:05,458 INFO spawned: 'carbon-cache' with pid 4466 2017-05-20 00:14:05,464 INFO spawned: 'graphite-webapp' with pid 4467 2017-05-20 00:14:06,635 INFO success: statsd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2017-05-20 00:14:06,635 INFO success: carbon-cache entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2017-05-20 00:14:06,635 INFO success: graphite-webapp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

1 ответ

Supervisor работает на переднем плане, а не на заднем плане, поэтому сценарий Upstart не дает сбоя: он зависает, потому что supervisor сохраняет контроль над потоком.

Решением будет заставить супервизор перейти в фоновый режим после запуска, но я опубликую более подробную информацию, как только я действительно выполню исправление.

Другие вопросы по тегам