#logging #debian #runit
#ведение журнала #debian #runit
Вопрос:
Я пытаюсь настроить runit и войти в систему на моей виртуальной машине debian wheezy. До сих пор мне удавалось запустить службу gunicorn, следуя этой настройке:
sudo mkdir /etc/sv/gunicorn
sudo vi /etc/sv/gunicorn/run
sudo ln -s /etc/sv/gunicorn/run /etc/service
В моем файле log run есть:
LOG_DIR=/home/$USER/logs/gunicorn/
exec svlogd -tt $LOG_DIR
Когда я запускаю sudo runsvdir /etc/ service /gunicorn
runsv supervise: fatal: unable to lock supervise/lock: temporary failure
Понятия не имею, что я делаю не так, есть какие-нибудь указания?
Ответ №1:
В ls -la /etc/service/gunicorn/supervise
я не видел, .lock
но был lock
файл. Удаление этого файла блокировки вызвало небольшой хаос.
Таким образом, я избавился от символической ссылки; отключил pid в ps aux | grep gunicorn
и повторно подключил символическую ссылку. Может быть, это конечная цель, но она позволяет выполнить работу.
Ответ №2:
Вы уверены, что предыдущий процесс полностью завершался? Возможно, вам потребуется найти и удалить .блокировка или .pid-файл, который сообщает системе, что он используется другим процессом
Ответ №3:
Это может быть вызвано остановкой runit
демона, когда его отдельные службы все еще запущены.
Вместо удаления и повторного создания symlinks
для runit
службы:
sv stop myservice
rm /etc/sv/myservice/supervise/lock
sv start myservice # or start the runit service
В вашем конкретном случае ваш symlink
был неправильным и должен быть:
ln -s /etc/sv/gunicorn /etc/service/gunicorn
Вы должны использовать символическую ссылку на sv
каталог, а не на run
файл в /etc/service/myservice