Я пытаюсь использовать выскочку, чтобы супервизор запускался автоматически при загрузке. мой руководитель находится в виртуальной среде.
Я настроил его для работы в режиме переднего плана с параметром -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]
Я хотел опубликовать этот ответ в другом потоке, но он заблокирован = (