Я пытаюсь запустить супервизор из systemd и следую этому руководству здесь .
После создания этого файла /etc/systemd/system/supervisord.service
со следующим содержанием:
[Unit]
Description=Supervisor daemon
Documentation=http://supervisord.org
After=network.target
[Service]
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
Alias=supervisord.service
Когда я запускаю его, я получаю следующую ошибку:
Mar 17 01:18:22 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: Started Supervisor daemon.
Mar 17 01:18:22 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[8772]: supervisord.service: Failed to execute command: No such file or directory
Mar 17 01:18:22 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[8772]: supervisord.service: Failed at step EXEC spawning /usr/local/bin/supervisord: No such file or directory
Mar 17 01:18:22 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: supervisord.service: Main process exited, code=exited, status=203/EXEC
Mar 17 01:18:22 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: supervisord.service: Failed with result 'exit-code'.
Mar 17 01:19:04 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: supervisord.service: Service hold-off time over, scheduling restart.
Mar 17 01:19:04 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: supervisord.service: Scheduled restart job, restart counter is at 1.
Mar 17 01:19:04 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: Stopped Supervisor daemon.
Ясно, что там написано, что такого каталога нет, но действительно ли создание его - правильный способ решить проблему?
Причина, по которой я не уверен, заключается в том, что, глядя на другие (я предполагаю) похожие проблемы (пример: здесь ), кажется, что они исправляют это по-другому. Также в руководстве этот путь (тот, который не существует) не упоминается где-либо еще, кроме содержимого supervisord.service
, поэтому я совершенно не понимаю, что здесь происходит.
Может кто-нибудь, пожалуйста, объясните мне или укажите что-то конкретное, чтобы прочитать, чтобы решить мою проблему правильным способом?
Спасибо!
ОБНОВЛЕНИЕ
найти supervisord
дает:
/etc/supervisor/supervisord.conf
/etc/systemd/system/supervisord.service
/usr/bin/echo_supervisord_conf
/usr/bin/supervisord
/usr/lib/python2.7/dist-packages/supervisor/supervisord.py
/usr/lib/python2.7/dist-packages/supervisor/supervisord.pyc
/usr/lib/python2.7/dist-packages/supervisor/tests/test_supervisord.py
/usr/lib/python2.7/dist-packages/supervisor/tests/test_supervisord.pyc
/usr/share/man/man1/echo_supervisord_conf.1.gz
/usr/share/man/man1/supervisord.1.gz
/var/log/supervisor/supervisord.log
найти supervisorctl
дает:
/usr/bin/supervisorctl
/usr/lib/python2.7/dist-packages/supervisor/supervisorctl.py
/usr/lib/python2.7/dist-packages/supervisor/supervisorctl.pyc
/usr/lib/python2.7/dist-packages/supervisor/tests/test_supervisorctl.py
/usr/lib/python2.7/dist-packages/supervisor/tests/test_supervisorctl.pyc
/usr/share/man/man1/supervisorctl.1.gz
В служебном файле указаны неправильные местоположения для двоичных файлов.
В файле измените
/usr/local/bin/supervisord
на
/usr/bin/supervisord
и
/usr/local/bin/supervisorctl
на
/usr/bin/supervisorctl
Затем выполните команду systemctl daemon-reload
, а затем systemctl start supervisord
.
На самом деле вы не следовали этому руководству и не устанавливали пакет супервизора через easy_install; он устанавливается из пакетов Ubuntu. Пакет уже содержит модуль systemd supervisor.service
, который вы можете просто запустить. Вам не нужно создавать свой собственный отряд.
Этот учебник также довольно плох, поскольку не объясняет, почему они приняли странные решения, которые они приняли. Я бы просто выбросил это руководство и использовал существующий модуль супервизора, который у вас уже есть.
Конечно,Я бы также просто выбросил supervisord, потому что он избыточен; практически все, что он делает, покрывается (и лучше) системой systemd. Я бы также выбросил все учебники, которые побудили вас попробовать установить supervisord.