Назад | Перейти на главную страницу

upstart - количество ответвлений супервизора> 2 (не удается запустить супервизор при загрузке)

Я пытаюсь использовать выскочку, чтобы супервизор запускался автоматически при загрузке. мой руководитель находится в виртуальной среде.

Я настроил его для работы в режиме переднего плана с параметром -n, и он работает, если запускается вручную, но отказывается запускаться при загрузке.

Следуя руководству здесь http://upstart.ubuntu.com/cookbook/#how-to-establish-fork-count

Я обнаружил, что супервизор разветвляется 37 раз.

> ~/projects/bleh_app$ sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf &
[1] 5662

> ~/projects/bleh_app$ ps -ef | grep strace
root      5662  5447  0 21:02 pts/0    00:00:00 sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
root      5663  5662 36 21:02 pts/0    00:00:03 strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
bleh     5703  5447  0 21:02 pts/0    00:00:00 grep --color=auto strace

> ~/projects/bleh_app$ sudo killall -9 strace
[1]+  Exit 137                sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf

> ~/projects/bleh_app$ sudo egrep "\<(fork|clone)\>\(" /tmp/strace.log | wc | awk '{print $1}'
37

Некоторые вопросы:
* Есть идеи, почему он не запускается в автономном режиме при загрузке?
* Правильно ли я определяю количество вил?
* есть какие-нибудь лучшие предложения о том, как начать супервизор с выскочкой?

о чувак...
Я начал свой путь отсюда:
Как автоматически запустить supervisord в Linux (Ubuntu)
и конкретно этот ответ https://serverfault.com/a/115259/60345

"о, классный выскочка для супервизора .... неееееет проблема"

Нет. Можно без проблем заставить supervisord запускаться вручную, но не может запускать автоматически при загрузке. Отладка кажется, что supervisord запускается, но затем немедленно отправляется SIGTERM, чтобы убить себя. Не знаю, потому что работает на переднем плане.
Изначально вопрос был задан для того, чтобы узнать, смогу ли я запустить его с помощью fork или daemon (чего я так и не понял)

8 часов моей жизни спустя я нахожу это
http://upstart.ubuntu.com/cookbook/#runlevels

вы в основном хотите, чтобы ваш файл конфигурации выскочки выглядел так:

description     "supervisord"

start on (filesystem and static-network-up)
stop on runlevel [!2345]

respawn

exec /<path to>/supervisord -n -c /<path to>/supervisord.conf

Особо следует отметить:
остановить на уровне выполнения [! 2345]
против
остановить на уровне выполнения [! 345]

Я хотел опубликовать этот ответ в другом потоке, но он заблокирован = (