Как создать новый сервис Systemd в Linux

Как создать новый сервис Systemd в Linux

Рубрики:

Linux, SystemD

Метки:

,

Юнит сервиса (от англ. Service Unit) в Systemd — это файл настроек, который определяет, как управлять службами (процессами, работающими в фоновом режиме) в ОС Linux. Юниты содержат информацию о том, как и когда сервис должен быть запущен, остановлен, перезагружен и так далее. Systemd, в свою очередь, использует эти файлы настроек для управления службами в Linux.

В этой статье мы расскажем, как создать свой сервис в операционной системе Linux.

Содержание:

  1. Просмотр содержимого папки /etc/systemd/system
  2. Написание скрипта для юнита нового сервиса
  3. Создание юнита сервиса
  4. Проверка работы нового сервиса
  5. Выводы

Просмотр содержимого папки /etc/systemd/system

Большинство юнитов Systemd расположены в каталоге /etc/systemd/system. Перейдем в эту директорию, чтобы вывести на экран ее содержимое:

 

system directory

Написание скрипта для юнита нового сервиса

Допустим, нам нужно создать юнит, который будет запускать скрипт для генерации файлов с временной меткой в каталоге /home/user/. Для этого создадим в папке /root сценарий timestamp_script.sh и вставим в него следующий код:

 

script file

Читайте также: Как легко скрыть файлы и каталоги в Linux.

Также сделаем этот скрипт исполняемым:

Создание юнита сервиса

Наш сервис будет называться qwerty, поэтому создадим в папке /etc/systemd/system файл юнита qwerty.service. Затем запишем в него следующие параметры:

 

unit file

Где:

  1. [Unit] — секция, которая используется для определения метаданных и зависимостей сервиса:
    • Description=Timestamp Service — краткое описание сервиса;
    • After=network.target — параметр, который указывает, что сервис должен запускаться после того, как начнет работу цель network.target (это полезно, если служба зависит от сетевого подключения).
  2. [Service] — секция, которая определяет поведение сервиса:
    • ExecStart=/root/timestamp_script.sh — параметр, указывающий на команду или скрипт, который будет выполнен при запуске службы;
    • Restart=always — параметр, значение которого означает, что сервис должен всегда перезапускаться, если он завершится.
  3. [Install] — секция, которая определяет, при каких условиях сервис должен быть запущен:
    • WantedBy=multi-user.target — параметр, который указывает, что служба будет связана с целью multi-user.target, предназначенной для обычного многопользовательского режима работы операционной системы.

После завершения настроек юнита сохраним и закроем файл. Затем перезагрузим систему Systemd и укажем ей запускать службу qwerty.service каждый раз при загрузке Linux:

 

systemctl reload

Читайте также: Chkservice — простой способ управления модулями (юнитами, unit) Systemd в терминале.

Проверка работы нового сервиса

Чтобы убедиться, что служба qwerty.service работает, запустим ее с помощью следующей команды:

 

И посмотрим содержимое каталога /home/user/:

 

service works

На скриншоте выше видно, что в папке появились файлы с временной меткой в названии.

Выводы

Мы показали, как создать собственный сервис Systemd в операционной системе Linux. Решение этой задачи достаточно простое, однако требует знаний для написания юнит-файла.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, SystemD

Метки:

,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню