SYSTEMD УТИЛИТЫ

В заметке смотрим на две простых утилиты для работы с systemd сервисами. service-monitor — для работы с логами нужного нам сервиса, и service-generator — для генерации простых unit файлов.

Для начала, поставим всё необходимое для сборки (работаем в CentOS 7) и заберём файлы из git репозитория:

# yum install epel-release
# yum install golang git systemd-devel 
# cd /usr/local/src/
# git clone https://github.com/muesli/service-tools

Собираем обе утилиты:

# cd service-tools/service-generator
# go build
# cd ../service-monitor
# go build

И посмотрим что они умеют.

service-monitor.

service-monitor позволяет нам работать с логами в системе. С помощью параметра —theme при запуске, мы можем выбрать внешний вид окна (ice, terminal), а ключи logs и services определят режим взаимодействия с утилитой.

Для того, что бы увидеть сводку по ошибкам, и получить доступ к логу в реальном времени, выполняем команду:

# ./service-monitor logs

Здесь мы можем стрелками выбрать нужный нам сервис, отфильтровать отображение по уровню ошибок, настроить вывод информации только для конкретного сервиса.

В случае, если мы хотим не только просматривать логи, но и взаимодействовать с сервисами, можно выполнить вот такую команду:

# ./service-monitor services

Здесь мы так же можем выбрать интересующий нас сервис, просмотреть последние записи в логах от него, остановить его, при необходимости.

В обоих режимах работы между окнами мы можем переместиться нажатием клавиши Enter, с помощью стрелок Вверх и Вниз выбрать нужный сервис, а клавиши F* использовать для дополнительных функций.

service-generator.

service-generator — это простой генератор unit файлов для наших сервисов. Для создания файла достаточно выполнить:

# ./service-generator create /path/to/binary "Super service"

И утилита создаст binary.service файл, который далее можно использовать в работе.

Есть у утилиты и простой псевдографический интерфейс. Запускаем:

# ./service-generator create

Далее заполняем поля, и генерируем наш unit файл.

Вот такие, очень простые, но удобные для работы с systemd сервисами утилиты.

А ещё, для работы с systemd сервисами, есть утилита chkservice, о ней есть отдельная короткая заметка.