## Описание Простая утилита для управления сервисами [runit](http://smarden.org/runit/ "Домашняя страница runit") через Web-интерфейс, с поддержкой интернационализации. Сервер запускается скриптом **runit-man**. Примите во внимание, что **runit-man** обязан иметь привилегии, аналогичные привилегиям процесса **runsvdir**. ## Скриншот ![Скриншот](https://github.com/Undev/runit-man/raw/master/runit-man-screenshot.gif "Скриншот") ## Инсталляция ### Opscode Chef Мы предоставляем [набор рецептов runit-man](https://github.com/Undev/runit-man-cookbook) для автоматизации установки runit-man с использованием [Opscode Chef](http://www.opscode.com/chef/). ### Ручная установка Обычно вам нужно поставить гемы **runit-man** и **thin** совместно, чтобы эта утилита работала эффективно. ```bash gem install runit-man thin ``` Прагматично установить runit-man как один из сервисов runit, например, так: ```bash runit-man -p 14500 -r ``` Эта команда создаёт сервис runit-man, как один из обычных активных сервисов runit (используя каталоги `/etc/sv/` and `/etc/service/` по умолчанию). Подробнее смотрите файл {file:INSTALL.md}. ### Конфигурирование под Rack Обратите внимание, что гем runit-man gem также предоставляет файл конфигурации Rack config.ru. Он полезен для запуска runit-man под такими серверами, как unicorn, rainbows и другими. Опция `runit-man --rackup=command` выполняет команду `cd каталог, где лежит config.ru && set environment && exec command`. ## Кастомизация Эта утилита способна предоставлять дополнительную информацию или действия на своей Web-странице. ### Просмотр имён и содержимого файлов, относящихся к конкретному сервису Для каждого известного сервиса runit эта утилита просматривает каталог `./runit-man/files-to-view/`. Каждый симлинк в этом каталоге будет показан как ссылка на просмотр содержимого целевого файла. ### Индикация сервисов, чьи файлы для наблюдения изменились после старта Для каждого известного сервиса runit эта утилита просматривает каталог `./runit-man/files-to-watch/`. Целевые файлы симлинков в этом каталоге будут проверяться на время последней модификации файла. Сервис будет помечаться как опасный (красным цветом) в плане рестарта, если любой наблюдаемый файл изменился после старта сервиса. ### Показ ссылок, относящихся к конкретному сервису Для каждого известного сервиса runit эта утилита просматривает каталог `./runit-man/urls-to-view/`. Каждый файл, имеющий расширение .url, будет показан, как сылка на просмотр целевой локации (которая берётся как содержимое файла). ### Показ кнопок, которые посылают сигналы выбранному процессу Для каждого известного сервиса runit эта утилита просматривает каталог `./runit-man/allowed-signals/`. Каждый однобуквенно-именованный файл определяет, что кнопка для сигнала должна появиться в пользовательском интерфейсе. Соответствия между буквами и сигналами перечислены ниже, в секции REST API. ## REST API ### Получение состояния Вы можете получить текущее состояние сервисов в [формате JSON](http://www.json.org/ "Домашняя страница JSON"), используя `GET /services.json` ### Управление Вы можете управлять вашими сервисами, используя `POST //` Поддерживаемые команды: *up*, *down*, *restart*, *switch_up* (активация сервиса), *switch_down* (деактивация сервиса). Вы можете также посылать любые сигналы сервису, используя `POST //signal/` Поддерживаемые сигналы и их значения: * t: TERM * k: KILL * i: INT * 1: USR1 * 2: USR2 * a: ALARM * q: QUIT * x: EXIT * p: PAUSE * c: CONT * h: HUP * o: ONCE ### Чтение логов #### svlogd Вы можете читать хвост лога сервиса, используя `GET //log/.txt` Учитывайте, что этот функционал работает, только если Вы логгируете сервис с использованием команды вида ```bash exec svlogd $LOG_DIRECTORY_LOCATION ``` #### logger Если Вы предпочитаете logger, используйте его вот так: ```bash exec logger -i -t "runit-man" -p local1.info ``` При этом нужно использовать опцию `-l "logger:/var/log/"`, где после двоеточия надо указывать базовый каталог логов. ## Локализация Локализация может быть выполнена редактированием файлов локалей в каталоге `./i18n/*.yml`. Ваши дополнения приветствуются. ## Ссылки * [runit home page](http://smarden.org/runit/) * [runit-man home page](https://github.com/Undev/runit-man)