Вопрос: runit - невозможно открыть supervise / ok: файл не существует


Я пытаюсь понять, почему 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 не помогло.

Какие-либо предложения? Я где-то пропустил шаг?


6
2017-07-04 04:18


Источник




Ответы:


Проблема заключалась в том, что, по крайней мере, на Ubuntu 12.04, символические ссылки сервисов runit должны быть помещены в / etc / service, not / service в соответствии с Путеводитель по руне


3
2017-07-04 04:31





В моем случае я удалил замок а также ПИД-регулятор из конфигурации службы после остановки службы:

# 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

Мне потребовалось некоторое время, чтобы найти решение, поэтому я надеюсь, что это поможет кому-то другому.


2
2017-10-28 20:33



Спасибо за ответ. Я также узнал, что мы не можем добавить службу журнала после того, как служба установлена ​​в / etc / service. Нет перезапуска. Таким образом, мы можем также остановить службу, удалить символическую ссылку из / etc / service и повторно ее связать. - Tanin
Не знал, что - alfredocambera


sudo runsv /service/run/ &

затем

sudo sv  start /service/run/

или

sudo sv  up /service/run/

1
2018-04-13 19:38





У 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

Возможные решения:

  • Отключите файловую систему от LVM
    umount /opt; lvremove /dev/mapper/lvm--local-opt
  • Переместите службу runit в лучшее место
    update-service --remove /opt/my-service; mv /opt/my-service /etc/sv; update-service --add /etc/sv/my-service

0
2018-02-11 11:22