Служебный файл Systemd

Sluzebnyj Fajl Systemd



В Linux вывод состояния systemctl показывает, что служба загружается через файл, который называется файлом службы. Доступ к этим файлам можно получить в /lib/systemd/система или /etc/systemd/система каталоги.

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







системный Система init управляет инициализацией системы с помощью Единица . Модуль — это объект, выполняющий задачу или действие, например управление службой, что предполагает ее контроль и мониторинг. Эти модули по сути представляют собой файлы, называемые служебными файлами, которые включают зависимости модулей и команды. Эти файлы имеют решающее значение для эффективного контроля фоновых процессов и управления ресурсами.



В руководстве я буду изучать файл службы systemd, его структуру и основные директивы, управляющие службой.



При работе с systemd условия системный файл службы и системный юнит-файл часто используются как взаимозаменяемые, поскольку технически они относятся к одному и тому же.





Что такое служебный файл Systemd

В Linux systemd управляет службами с помощью служебных файлов, содержащих инструкции по настройке, чтобы systemd мог их понимать и выполнять.

Чтобы вывести список модулей, используйте systemctl с параметром –список-юнитов команда.



системаctl --list-юниты

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

кот [ / путь-служебного-файла ]

Например, чтобы просмотреть служебный файл ssh.service используйте данную команду.

кот / библиотека / системный / система / ssh.service

Анатомия служебного файла Systemd

Обычно файлы служебных модулей systemd содержат три раздела.

  • Единица
  • Услуга
  • Установить

Юнит-файл, специфичный для конкретной службы, будет иметь специальный раздел, называемый Услуга раздел.

Обратите внимание, что услуга — это всего лишь тип единицы. Модуль может иметь разные типы, такие как сокет, устройство, монтирование, автоматическое монтирование, замена, цель, таймер, срез и область действия. Эти разделы расположены между разделами «Модуль» и «Установка». Расширение файла также будет заменено соответствующим типом устройства, например, тип модуля гнезда будет иметь .разъем расширение файла.

Примечание: В этом руководстве я сосредоточусь на типе сервисного модуля, поскольку он широко используется администраторами и разработчиками.

Эти разделы заключены в квадратные скобки ([]). Каждый раздел содержит соответствующий набор инструкций. Ниже приведена общая структура служебного файла.

[ Единица ]

Директива1 =Инструкция 1

Директива2 =Инструкция 2

[ Услуга ]

Директива1 =Инструкция 1

Директива2 =Инструкция 2

[ Установить ]

Директива1 =Инструкция 1

Директива2 =Инструкция 2

Порядок разделов можно изменить; однако вышеупомянутый порядок обычно соблюдается.

Раздел [Юнит]

Раздел unit содержит описание модуля и зависимостей модуля. Этот раздел по соглашению размещается в верхней части служебного файла. Часто используемые директивы перечислены ниже:

Директива Описание
Описание Эта директива используется для упоминания имени службы. Длина описания не должна превышать 80 символов.
Документация Эта директива содержит справочную страницу или URL-адрес службы.
Требует Эта директива используется для указания зависимости от текущего сервиса. Если активация этой службы зависимостей не выполнена, текущая служба не будет запущена.
Хочет Эта директива используется для указания зависимости от текущего сервиса. Однако эту службу зависимостей не требуется активировать для запуска текущей службы.
До После активации текущего устройства будет запущена служба, упомянутая в этой директиве.
После Прежде чем текущий модуль будет активирован, будет запущена служба, упомянутая в этой директиве.
Привязывается к Эта директива связывает текущую службу с упомянутой службой. Если связанная служба перезапустится, текущие службы также перезапустятся.

Помимо этих директив, есть еще две директивы; Состояние и Утверждать. Для успешного запуска многих служб требуются определенные системные условия, и эти директивы используются для указания условий.

Раздел [Установить]

Этот раздел не является обязательным и необходим только в том случае, если служба требует активации или деактивации при загрузке. Кроме того, следует также упомянуть службу псевдонимов. Часто используемые директивы для раздела установки перечислены ниже:

Директива Описание
Разыскивается Эта директива устанавливает уровень выполнения * цель услуги. Если цель установлена ​​на многопользовательский.target тогда служба будет включена на этом уровне выполнения.
Требуется Эта директива похожа на WantedBy, однако даже без упомянутой в директиве зависимости служба будет включена.
Псевдоним Эта директива используется для включения службы с другим именем. Символическая ссылка с этим именем создается при включении службы.

В основном, многопользовательский.target используется как Разыскивается параметр. Но что такое multi-user.target?

multi-user.target представляет состояние системы, готовое принимать неграфические многопользовательские сеансы. Это состояние перед запуском графического интерфейса.

Существуют разные уровни запуска системы, давайте узнаем о функциях этих уровней запуска.

В systemd службы группируются по уровням запуска, которые называются цели . На каждом уровне выполнения имеется файл с .цель расширение в /etc/systemd/система каталог. Служба будет запускаться в зависимости от состояния уровня выполнения.

Уровень запуска Цели Состояние Файлы
0 выключение Выключить и выключить poweroff.target
1 спасать Запускает спасательную оболочку спасение.цель
2,3,4 многопользовательский Запускает многопользовательскую оболочку без графического интерфейса. многопользовательский.target
5 графический Устанавливает многопользовательскую оболочку графического интерфейса. графический.цель
6 перезагрузить Выключить и перезагрузить перезагрузка.цель

Раздел [Сервис]

Этот раздел содержит параметры конфигурации службы. Основная настройка этого раздела определяет тип и команды, которые будут выполняться при запуске службы. Тип и ЭксекСтарт — это основные директивы, используемые для настройки службы.

Различные типы услуг перечислены в следующей таблице.

Тип Обслуживания Описание
простой Это тип по умолчанию, когда тип или имя шины не упоминаются, а упоминается только ExecStart. Systemd сначала выполняет основной процесс, а затем последующие модули.
разветвление Этот тип используется для поддержания работы службы, даже если родительская служба закрыта. Он разветвляет дочерний процесс после закрытия родительского процесса.
один выстрел Systemd сначала выполняет основной процесс, а когда основной процесс завершается, запускаются последующие модули.
дбус Служба с dbus используется для связи с другим процессом на шине. Если имя шины упомянуто, то процесс будет активирован после получения имени шины.
поставить в известность Сервис оповестит при запуске процесса. systemd перейдет к последующим модулям после выдачи уведомления.
праздный Он поддерживает обслуживание до тех пор, пока не будут отправлены все активные задания; в первую очередь полезно для улучшения вывода на консоль.

Часто используемые директивы в разделе «Сервис» упомянуты ниже:

Директива Описание
ЭксекСтарт Он сохраняет полный путь к команде, которую необходимо выполнить для начала процесса.
ExecStartPre Он сохраняет команды, которые должны быть выполнены до начала основного процесса.
ExecStartPost Он сохраняет команды, которые должны быть выполнены после начала основного процесса.
ExecReload Он сохраняет команду перезагрузки конфигурации службы.
Перезапуск Для автоматического перезапуска службы в таких обстоятельствах, как при сбое, при успехе, при нештатной ситуации, при прерывании и при включении сторожевого таймера.
Рестартсек Чтобы сохранить количество секунд, через которые служба автоматически перезапустится.

ЭксекСтарт — одна из важнейших директив, используемых в разделе «Сервис». Он содержит полный путь к исполняемому файлу что служба будет выполняться при вызове.

Заключение

Служебный файл systemd — это файл конфигурации, структурированный с помощью директив и команд, позволяющий управлять ими с помощью systemd. Эти файлы содержат инструкции, указывающие, как systemd управляет службой. В этом руководстве я рассказал, как получить доступ к файлу службы systemd, его разделам и директивам, управляющим службами. Чтобы узнать больше об инструкциях по служебным файлам, прочтите официальное руководство по документации. здесь .