В заметке смотрим на две простых утилиты для работы с 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, о ней есть отдельная короткая заметка.