Я пытаюсь понять, почему runit не загружается и не сообщает мне статус управляемых приложений. Работает на Ubuntu 12.04.
Я создал / service, / etc / sv / myapp (со сценарием запуска, файлом конфигурации, папкой журнала и сценарием запуска внутри него). Я создаю символическую ссылку из / service / в / etc / sv / myapp
Когда я бегу
sudo sv s /service/*
Я получаю следующее сообщение об ошибке:
warning: /service/myapp: unable to open supervice/ok: file does not exist
Некоторые из моих поисковых запросов показали, что якобы перезагрузка службы svscan может исправить это, но ее устранение и запуск svscanboot не имеют значения.
Какие-либо предложения? Я где-то пропустил шаг?
В моем случае я удалил замок и пид из конфигурации службы после остановки службы:
# stops the service
sv down serviceName
# deletes the 'pid' and 'lock' files
find -L /etc/service/serviceName -type f \( -name "pid" -o -name "lock" \) -delete
# starts the service
sv up serviceName
# verify service status
sv s serviceName
Мне потребовалось время, чтобы найти решение, поэтому я надеюсь, что оно поможет кому-то другому.
Проблема заключалась в том, что, по крайней мере, в Ubuntu 12.04, символические ссылки runit services должны быть размещены в / etc / service, а не в / service в соответствии с Руководство по Arch на Runit
Если вы используете ubuntu 18.04 или выше и получаете следующую ошибку
невозможно открыть supervise / ok: файл не существует
или если runvdir не отображается в выводе "grep", пожалуйста runit-systemd пакет, выполнив следующую команду
sudo apt install runit-systemd
Для ubuntu 18.04 все указанные выше ответы у меня не сработали. Затем я нашел это решение от другого askubuntu вопрос
надеюсь, это поможет
sudo runsv /service/run/ &
затем
sudo sv start /service/run/
или
sudo sv up /service/run/
Runit также имеет проблемы с запуском, когда служба связана с каталогом, который смонтирован в другой файловой системе через LVM. Например,
$ readlink -f /etc/service/my-service
/opt/my-service
$ mount
...
/dev/mapper/lvm--local-opt on /opt type ext4 (...)
$ sv once my-service
warning: my-service: unable to open supervise/ok: file does not exist
Возможные решения:
umount /opt; lvremove /dev/mapper/lvm--local-opt
update-service --remove /opt/my-service; mv /opt/my-service /etc/sv; update-service --add /etc/sv/my-service