В служебных файлах есть .услуга расширения и содержат инструкции, требуемые системный для управления сервисом.
системный Система 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, его разделам и директивам, управляющим службами. Чтобы узнать больше об инструкциях по служебным файлам, прочтите официальное руководство по документации. здесь .