Ubuntu Server 16.04: не удается автоматически запустить супервизор

43

Я установил супервизор на сервере Ubuntu 16.04.

$ sudo apt-get install supervisor
$ sudo update-rc.d supervisor defaults

После перезагрузки супервизор не запустился автоматически. Проверено состояние:

qinking126@nas:~$ sudo service supervisor status
[sudo] password for qinking126:
● supervisor.service - Supervisor process control system for UNIX
   Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: http://supervisord.org

Я не уверен, почему он неактивен (мертв). Что мне нужно проверить, чтобы исправить это?

qinking126
источник
2
Похоже, вы используете systemd. Имеет ли этот askubuntu ответ помощь?
Джефф Шаллер
1
@JeffSchaller большое спасибо. это помогает. все, что мне нужно, это запустить "systemctl enable SERVICE.service"
qinking126

Ответы:

61

Я убежден, что эта проблема является ошибкой упаковки в пакете Supervisor в Ubuntu 16.04 и, по-видимому, она была вызвана переключением на systemd:

  • Об этой проблеме уже сообщалось ранее в трекере проблем проекта Супервизора (где ничего нельзя исправить) в проблеме 735 .

  • Я был укушен этой проблемой несколько дней назад и с удивлением обнаружил, что разработчики пакетов никогда не сообщали об этой проблеме, хотя Ubuntu 16.04 был выпущен довольно давно, и это нарушает обратную совместимость и ожидаемое поведение. Вот почему я решил сообщить об этой проблеме сопровождающим пакета в ошибке 1594740 .

Я задокументировал простой обходной путь в ошибке 1594740 , который не требует создания каких-либо файлов конфигурации - вам просто нужно включить и запустить демон Supervisor после установки пакета:

# Make sure Supervisor comes up after a reboot.
sudo systemctl enable supervisor

# Bring Supervisor up right now.
sudo systemctl start supervisor

Я не уверен, что это будет исправлено в Ubuntu 16.04, но, по крайней мере, теперь есть центральное место для сбора жалоб и документирования обходных путей (в ошибке 1594740 , а не в проблеме 735 ).

Если кто-то был укушен этой проблемой, подумайте о том, чтобы выразить свое беспокойство в сообщении об ошибке 1594740, чтобы убедить сопровождающих пакетов решить эту проблему. Благодарность!

Обновление (2017-03-24): Вчера исправление для этой проблемы было выпущено для xenial-updates в результате ошибки 1594740, поэтому новые установки больше не должны сталкиваться с этой проблемой.

xolox
источник
6

смотрите здесь Запуск супервизора автоматически при запуске

  1. Создайте supervisord.serviceфайл /usr/lib/systemd/systemи поместите в него следующий контент в зависимости от системы:

    Сценарии инициализации

  2. sudo systemctl daemon-reload

  3. sudo systemctl enable supervisord.service

  4. sudo systemctl start supervisord.service

Belter
источник
1

Вот пример файла, который вы можете поместить в ваш / lib / systemd / system /

[Unit]
Description=Supervisord Service

[Service]
Restart=on-failure
RestartSec=42s
User=ubuntu
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisord.conf

[Install]
WantedBy=multi-user.target
Леонардо Брагатти
источник
расположение конфигурации Ubuntu по умолчанию/etc/supervisord/supervisord.conf
Antti Haapala
@AnttiHaapala Не для моей установки Ubuntu 16.04. Правильное расположение: /etc/supervisor/supervisord.conf (обратите внимание на отсутствие «d», если кому-то интересно)
Rishi
@ Yoshi9143 Вы правы: D
Антти Хаапала
1

Я удалил это супервизор и установил снова. Тогда это сработало для меня.

sudo apt-get purge supervisor
sudo apt-get install supervisor
cp path/to/file.conf /etc/supervisor/conf.d/
sudo supervisorctl reread
sudo supervisorctl update
Анджанеюлу Батта
источник
0

apt-get устанавливает супервизор в Ubuntu 16.04.2, устанавливает супервизор 3.2.0 и запускается автоматически при перезагрузке.

pip install supervisor - обновить обновления до 3.3.1, и он больше не запускается.

Обновление работает Ubuntu 16.04.1

bsrdjan
источник
0

На CentOSя решил это, запустив хроны на старте , что пробеги supervisord:

Создать задание cron, запустить crontab -eв терминале, а затем вставить @reboot /bin/supervisord( это должен быть путь к супервизору ) в конце задания и сохранить его.

АКО
источник