Systemd сервизен файл

Systemd Servizen Fajl



В Linux изходът за състояние на systemctl показва, че услугата е заредена чрез файл, който се нарича сервизен файл. Тези файлове могат да бъдат достъпни в /lib/systemd/система или /etc/systemd/system директории.

Сервизните файлове имат .обслужване разширения и съдържат инструкциите, които се изискват от systemd за управление на услуга.







The systemd init системата управлява инициализацията на системата с помощта на Мерна единица . Единицата е обект, който изпълнява задача или действие, като например управление на услуга, което включва нейното контролиране и наблюдение. Тези единици по същество са файлове, наречени сервизни файлове, които включват зависимости и команди на единици. Тези файлове са от решаващо значение за ефективното контролиране на фоновите процеси и управлението на ресурсите.



В ръководството ще изследвам файла на услугата systemd, неговата структура и основните директиви, които контролират услугата.



Когато работите със systemd, условията системен служебен файл и системен файл на единица често се използват взаимозаменяемо, защото технически се отнасят за едно и също нещо.





Какво е Systemd сервизен файл

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

За да изброите единиците, използвайте systemctl с –списъчни единици команда.



systemctl --списък-единици

За да прочетете служебния файл на която и да е услуга, използвайте котка команда с пътя на файла.

котка [ / път на сервизен файл ]

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

котка / либ / systemd / система / ssh.service

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

Обикновено файловете на системните сервизни единици съдържат три раздела.

  • Мерна единица
  • Обслужване
  • Инсталирай

Единичен файл за специфична услуга ще има специфичен раздел, наречен Обслужване раздел.

Имайте предвид, че услугата е само вид единица. Една единица може да има различни типове като сокет, устройство, монтиране, автоматично монтиране, суап, цел, таймер, срез и обхват. Тези секции се поставят между секциите Unit и Install. Разширението на файла също ще бъде заменено със съответния тип единица, например, тип единица за гнездо ще има a .гнездо разширение на файл.

Забележка: В това ръководство ще се съсредоточа върху типа сервизна единица поради широкото му използване от администратори и разработчици.

Тези раздели са затворени в квадратни скоби ([]). Всеки раздел съдържа подходящ набор от инструкции. По-долу е дадена обща структура на сервизен файл.

[ Мерна единица ]

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

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

[ Обслужване ]

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

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

[ Инсталирай ]

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

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

Редът на секциите може да се променя; въпреки това горепосоченият ред обикновено се следва.

Раздел [Единица].

Разделът за единица съдържа описание на единицата и зависимостите на единицата. Този раздел по конвенция се поставя в горната част на сервизния файл. Често използваните директиви са изброени по-долу:

Директива Описание
Описание Тази директива се използва за споменаване на името на услугата. Дължината на описанието не трябва да надвишава 80 знака.
Документация Тази директива съдържа man страницата или URL адреса на услугата.
Изисква Тази директива се използва за споменаване на зависимостта от текущата услуга. Ако активирането на тази услуга за зависимост не бъде извършено, текущата услуга няма да бъде инициирана.
Иска Тази директива се използва за споменаване на зависимостта от текущата услуга. Въпреки това не е необходимо тази услуга за зависимост да бъде активирана, за да стартира текущата услуга.
Преди След като текущото устройство бъде активирано, услугата, спомената в тази директива, ще бъде стартирана.
След Преди текущото устройство да бъде активирано, услугата, спомената в тази директива, ще бъде стартирана.
BindsTo Тази директива свързва настоящата услуга със споменатата услуга. Ако свързаната услуга се рестартира, текущите услуги също ще се рестартират.

Освен тези директиви има още две директиви; Състояние и Твърди. Много услуги изискват специфични системни условия за успешно изпълнение и тези директиви се използват за споменаване на условията.

Секция [Инсталиране].

Този раздел не е задължителен и е необходим само когато дадена услуга изисква активиране или деактивиране при зареждане. Освен това трябва да споменем услугата за псевдоним. Често използваните директиви за раздела за инсталиране са изброени по-долу:

Директива Описание
WantedBy Тази директива определя нивото на изпълнение * цел на услугата. Ако целта е зададена на multi-user.target тогава услугата ще бъде активирана на това ниво на изпълнение.
Изисква се от Тази директива прилича на WantedBy, но дори и без зависимостта, спомената в директивата, услугата ще бъде активирана.
Псевдоним Тази директива се използва за активиране на услугата с друго име. Създава се символна връзка с това име, когато услугата е активирана.

Най-вече, multi-user.target се използва като WantedBy параметър. Но какво е multi-user.target?

multi-user.target представлява състоянието на системата, готово да приеме неграфични сесии с множество потребители. Това е състоянието преди стартиране на GUI.

Има различни нива на изпълнение на системата, нека научим за функцията на тези нива на изпълнение.

В systemd услугите са групирани въз основа на нива на изпълнение, които се извикват цели . Всяко ниво на изпълнение има файл с .мишена разширение в /etc/systemd/system указател. Услугата ще се изпълнява въз основа на състоянието на нивото на изпълнение.

Ниво на бягане Цели състояние файлове
0 изключване Изключване и изключване poweroff.target
1 спасяване Стартира спасителната обвивка спасяване.цел
2,3,4 мулти-потребител Стартира многопотребителска обвивка без GUI multi-user.target
5 графичен Установява GUI обвивка за много потребители графичен.цел
6 рестартирайте Изключете и рестартирайте рестартиране.target

[Услуга] Раздел

Този раздел съдържа конфигурационните настройки за услугата. Основната конфигурация на този раздел е дефиниране на типа и командите, които да бъдат изпълнени при стартиране на услугата. Тип и ExecStart са основните директиви, използвани за настройка на услуга.

Различните видове услуги са изброени в следващата таблица.

Тип услуга Описание
просто Това е типът по подразбиране, когато типът или името на шината не са споменати и се споменава само ExecStart. Systemd изпълнява първо главния процес и след това последващите модули.
раздвояване Този тип се използва, за да поддържа услугата работеща, дори ако родителската услуга е затворена. Той разклонява дъщерен процес след затварянето на родителския процес.
един изстрел Systemd първо изпълнява основния процес и когато главният процес излезе, ще стартират последващите модули.
dbus Услугата с dbus се използва за комуникация с друг процес в шината. Ако името на шината е споменато, процесът ще се активира, след като името на шината бъде получено.
уведомявам Услугата ще ви уведоми при стартиране на процеса. Systemd ще продължи към последващите звена след издаване на известието.
празен Той поддържа услугата, докато всички активни задачи бъдат изпратени; предимно полезно за подобряване на изхода на конзолата.

Често използваните директиви в секцията за услуги са споменати по-долу:

Директива Описание
ExecStart Той запазва пълния път на командата, която трябва да бъде изпълнена, за да започне процеса.
ExecStartPre Той съхранява командите, които трябва да бъдат изпълнени преди да започне основният процес.
ExecStartPost Той запазва командите, които трябва да бъдат изпълнени след началото на основния процес.
ExecReload Той запазва командата за презареждане на конфигурацията на услугата.
Рестартирам За автоматично рестартиране на услугата при обстоятелства като при повреда, при успех, при ненормално, при прекъсване и куче пазач.
RestartSec За да запазите броя секунди, след които услугата ще се рестартира автоматично.

The ExecStart е една от най-важните директиви, използвани в раздела за услуги. Той съдържа пълен път на изпълнимия файл че услугата ще се изпълни при извикване.

Заключение

Сервизният файл на systemd е конфигурационен файл, който е структуриран с директиви и команди, така че да могат да се управляват от systemd. Тези файлове съдържат инструкции, показващи как дадена услуга се управлява от systemd. В това ръководство разгледах как да осъществя достъп до файл на услугата systemd, неговите секции и директиви, които управляват услугите. За да научите повече относно инструкциите за сервизния файл, моля, прочетете официалното ръководство за документация тук .