/var/service
на данный каталогRunit - система инициализации во многих дистрибутивах Linux (например, VoidLinux).
За управление сервисами в системе инициализации runit отвечает утилита sv
.
sv <start|stop|status|...> <service_name>
Подкоманда | Описание действия |
---|---|
start | Аналогично up , но в течение 7 секунд пытается перезапустить в случае ошибки сервиса до получение эффекта, потом выводит состояние |
stop | Аналогично down , но в течение 7 секунд ожидает эффекта, потом выводит состояние сервиса |
status | Выводит состояние сервиса |
up | Запускает сервис, в случае ошибки запуска — пытается перезапустить |
down | Останавливает сервис отправкой сигнала SIGTERM, если через какое-то время процесс остается запущенным — посылает SIGKILL |
once | Запускает сервис, если произошла ошибка запуска — не пытается перезапустить |
pause | |
exit | Посылает процессу сервиса SIGTERM и SIGCONT, ждет завершения процесса логгирования (если есть) и завершает процесс runsv для процесса сервиса |
reload | Отпраляет процессу SIGHUP и выводит состояние процесса сервиса |
restart | Пытается в течение 7 секунд остановить сервис (SIGTERM), потом выполняет его запуск и выводит отчет о состоянии |
shutdown | Аналогично exit , но ожидает 7 секунд и выводит отчет |
Для stop
, reload
, restart
и shutdown
доступен префикс force-
.
В системе, использующей runit, под скрипты запуска и настройки сервисов выделен каталог /etc/sv
.
|\_ check* |\_ run* |\_ down |\_ finish* \__ log/ \_ run*
Для автостарта сервиса следует создать символическую ссылку в каталоге /run/runit/runsvdir/current
1). В случае, если присутствует файл down
в каталоге сервиса, автостарт не будет производится2).
Основополагающим является файл запуска сервиса — run
. Он определяет, как процесс сервиса будет запущен. Должен иметь флаг исполняемого3).
В случае, если запускаемый процесс — форкающийся, то для отслеживания его состояния следует использовать файл check
, описывающий, как отслеживать процесс.