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

Отсутствует файл носок супервизора

Я установил Supervisor (v3.1.2) для управления ElastAlert, но когда я запускаю supervisorctl иногда возникает эта ошибка:

unix:///var/run/supervisor.sock no such file

а в других случаях это вызывает эту ошибку:

unix:///tmp/supervisor.sock no such file

Замечу, что это действительно подводит меня к supervisor> приглашение, но команды после этого являются теми же ошибками, что и выше. В /etc/supervisor/supervisor.conf файл настроен на использование /var/run, что, похоже, не согласуется со второй ошибкой.

Я создал ссылку на /etc/supervisor.conf, как предлагали другие страницы справки, но это не имело значения.

Две странные вещи: когда я впервые установил Supervisor, он работал нормально, но эта проблема началась после перезагрузки. И еще одна странность в том, что ElastAlert запускается после перезагрузки и продолжает нормально работать. Итак, хотя у него могут быть ошибки, он выполняет свою работу. Не шоу-стоппер, но хотелось бы, чтобы это работало как следует.

Любые идеи?

Это происходит со мной, когда физическая машина перезагружается. На моих машинах работает Ubuntu с 12.04 по 16.04. Я решаю это перезапуском супервизора как службы.

sudo service supervisor stop
sudo service supervisor start 

(Это как-то работает намного лучше, чем просто использование «перезапуска»)

Очевидно, что это не идеальное решение, если вы зависите от Supervisor, чтобы запускать другие программы за вас без необходимости перезапуска после каждой перезагрузки. Я сейчас изучаю systemd как предлагали другие.

Изменить: если вы используете Ubuntu 16.04, этот ответ может решить все ваши проблемы, как и мою. Вы должны «включить» systemd, чтобы запустить supervisord. https://unix.stackexchange.com/a/291098

У меня возникла эта проблема при размещении моего приложения django. Моя машина - aws => ec2 => ubuntu 18.x

У меня была неправильная конфигурация моего bash-файла Gunicorn. когда я исправил проблему с путём в файле gunicorn. супервайзер снова начал работать.

убедитесь, что вы правильно его настроили:

DJANGODIR=/home/ubuntu/<my-project>               # Django project directory
SOCKFILE=/home/ubuntu/<my-project>/run/gunicorn.sock  # we will communicte using this unix socket

Вот в моем случае. Допустим, ошибка unix:///var/run/supervisord.sock no such file при вводе этой команды sudo supervisorctl status

Итак, мое решение:

  1. Открыть файл конфигурации супервизора sudo nano /etc/supervisor/supervisord.conf
  2. Проверьте строку, на которую указывает serverurl пути supervisorctl.
[supervisorctl]
serverurl=unix:///var/run/supervisord.sock ; use a unix:// URL  for a unix socket
  1. Измените путь serverurl на unix:///var/run/supervisor.sock. Увидеть разницу в супервайзереd и руководитель
  2. Перезапустить супервизор service supervisor restart
  3. Проверить статус супервайзера sudo service supervisor status
  4. Проверьте еще раз, сохраняется ли ошибка sudo supervisorctl status если да, попробуйте удалить свою конфигурацию в /etc/supervisor/conf.d/ ... или переустановите супервизор