Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 10964|Відповідь: 8

[linux] Менеджер сервісів Linux systemd детально пояснює

[Копіювати посилання]
Опубліковано 28.11.2021 10:02:32 | | | |
systemd — це набір базових будівельних блоків для систем Linux. Він надає менеджер системи та сервісів, який запускає та запускає решту системи як PID 1.

systemd забезпечує агресивні можливості паралелізації, використовує сокети та активацію D-Bus для запуску сервісів, забезпечує запуск демонів на вимогу, використовує контрольні групи Linux для відстеження процесів, підтримує монтування та точки автомонтування, а також реалізує добре розроблену логіку керування сервісами на основі залежності від транзакцій. systemd підтримує скрипти SysV та LSB init і може замінити sysvinit.

Інші розділи включають журнал-демони, утиліти для керування базовими системними конфігураціями, такими як імена хостів, дати, локації, ведення списку зареєстрованих користувачів і запуск контейнерів і віртуальних машин, системні облікові записи, каталоги під час виконання та налаштування, а також керування конфігураціями демонів для простих мереж, синхронізацію часу мережі, пересилання журналів і розв'язання імен.

Конфігураційний файл systemd існує у наступних трьох папках:         

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。

/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。
Огляд:

Linux переглядає вихід журналів сервісу Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Додайте вузол Linux і зареєструйте його як сервіс
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 встановлює експортер Node
https://www.itsvse.com/thread-9969-1-1.html

Профіль підрозділу

Одиничний файл у systemd — це файл, який кодує інформацію про різні пристрої, якими systemd може керувати, включно з сервісами, сокетами, пристроями тощо. Цей посібник зосереджений на сервісах, у такому разі файл одиниці, з яким ми працюємо, є .service. Файл конфігурації пристрою varnish.service містить інформацію про те, як systemd має виконувати, моніторити та керувати демоном varnish.

Блок [Unit] зазвичай є першим блоком конфігураційного файлу і використовується для визначення метаданих Unit та його зв'язку з іншими Unit. Основні галузі такі.

  • Опис: Короткий опис
  • Документація: Адреса документа
  • Вимагає: Інші пристрої, від яких залежить поточний блок, і якщо вони не працюють, поточний блок не запуститься
  • Потрібні: Інші пристрої, які працюють з поточним блоком, якщо вони не працюють, поточний пристрій не запускається
  • BindsTo: Подібно до Requires, він визначає Unit, який змушує поточний Unit зупиняти роботу при виході
  • До: Якщо Одиниця, вказана в цьому полі, також має бути запущена, вона має бути запущена після поточної Одиниці
  • Після: Якщо Одиниця, вказана в цьому полі, також має бути запущена, вона має бути запущена раніше поточної Одиниці
  • Конфлікти: Вказаний тут блок не може працювати одночасно з поточним блоком
  • Умова... : Умови, які мають бути виконані для роботи поточного пристрою, інакше він не працюватиме
  • Стверджувати... : Умови, які мають бути виконані для роботи поточного пристрою, інакше буде зафіксовано про відмову при запуску

[Install] зазвичай є останнім блоком конфігураційного файлу, який визначає, як завантажуватися і чи потрібно запускати. Основні галузі такі.

  • WantedBy: Його значення — одна або кілька цілей, і коли поточний Unit активний (enable), символічне посилання розміщується в піддиректорії під каталогом /etc/systemd/system з суфіксом Target name + .wants
  • RequiredBy: Його значення — одна або кілька цілей, і коли поточний Unit активний, символічне посилання буде розміщено в піддиректорії під каталогом /etc/systemd/system з суфіксом Target name + .required
  • Псевдонім: Псевдонім, який поточний Юніт може використовувати для старту
  • Також: коли поточний пристрій активується, інші одиниці активуються одночасно

Блок [Service] використовується для налаштування Service, і лише одиниці типу Service мають цей блок. Основні галузі такі.

  • Тип: Визначає поведінку процесу при запуску. Вона має такі значення.
  • Type=simple: значення за замовчуванням, виконайте команду, задану ExecStart, щоб запустити основний процес
  • type=forking: Fork створює дочірній процес із батьківського процесу, який одразу після створення виходить з експлуатації
  • Type=oneshot: одноразовий процес, Systemd чекає виходу поточного сервісу, перш ніж продовжити виконання
  • Type=dbus: Поточний сервіс запускається через D-Bus
  • type=notify: Коли поточний сервіс запущено, Systemd буде сповіщений і продовжить виконання
  • type=idle: Поточний сервіс запускається лише у разі виконання інших завдань
  • ExecStart: Команда для запуску поточної служби
  • ExecStartPre: Команда, виконана перед запуском поточної служби
  • ExecStartPost: Команда, виконана після запуску поточного сервісу
  • ExecReload: Команда, що виконується при перезапуску поточного сервісу
  • ExecStop: Команда, яка виконується, коли поточний сервіс зупинено
  • ExecStopPost: Зупинити команду, яка виконується під час її доставки
  • RestartSec: Кількість секунд між автоматичним перезапуском поточного сервісу
  • Restart: Визначає обставини, за яких Systemd автоматично перезапускає поточний сервіс, з можливими значеннями, такими як завжди, на успіху, на помилці, на аномальному режимі, на припиненні, на watchdog
  • TimeoutSec: Визначає кількість секунд, які Systemd чекає перед припиненням поточного сервісу
  • Середовище: Вкажіть змінну середовища

Інструмент управління Systemctl

Управління програмами в CentOS фактично здійснюється інструментом systemctl.

Сервіс запуску:

systemctl start name.service

Припиніть обслуговування:

systemctl stop name.service

Перезапуск сервісу:

systemctl restart name.service

Статус перегляду:

systemctl status name.service

Умовне перезапуск:

Якщо сервіс був запущений раніше, його буде перезапущено, а якщо не запущено — не буде експлуатуватися

systemctl try-restart name.service

Перезавантажити або перезапустити:

Спочатку перезавантажтеся, а якщо перезавантаження не вдасне — перезавантажте

systemctl reload-or-restart name.service

Перезарядка або умовний перезапуск:

systemctl reload-or-try-restart name.service

Встановлює, чи може користувач налаштувати сервіс для запуску стану

systemctl розмаскувати name.service

Systemctl mask name.service заборонено

Перегляньте поточний статус активації сервісу:

Значення повернення статусу команди «сервіс запущено» дорівнює 0. Значення повернення статусу команди, яка не була запущена, не 0

systemctl is-active name.service

Перегляньте всі активовані сервіси:

-t Вказує тип пристрою, що відображається.

--всі відображають більш детальний список інформації.

-еквівалент --всі

SystemCTL-спискові одиниці

SystemCTL List-Units -T Service

SystemCTL List-Units -T Service -A

Переглянути всі послуги:

Systemctl List-Units -A

Переглянути всі статуси послуг:

systemctl list-unit-files

-a 、--всі: Переглянути статус усіх сервісів

-t 、--type: Вказує тип одиниці, яку слід переглядати

завантажено: Файл конфігурації завантажено, завантажено в пам'ять

active(running): Пробіжи, які безперервно обробляються один або кілька разів

active(exitated): одноразова конфігурація успішно завершена

активний (очікування): Біг, очікування події

inactive:不运行

enabled:开机启动

disabled:开机不启动

static:开机不启动,但可被另一个启用的服务激活

Використовується для вказівки, на яких рівнях роботи сервіс увімкнений і вимкнений

LS /etc/systemd/system/*.wants/sshd.service

systemctl list-unit-files --тип цілі --всі

Щоб налаштувати сервіс так, щоб не запускався:

systemctl Вимкнути сервісний ім'я

Перевірте, чи сервіс завантажений і запущений:

systemctl is-enabled name.service

Подивіться на залежності сервісів:

systemctl list-dependencies name.service
systemctl list-depebdencies

Обслуговування важких вантажів:

systemctl daemon-reload

Зупиніть процес:

Назва процесу вбивства systemctl

Ресурси:

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.





Попередній:Linux тестує підключення LDAP за допомогою команди Curl
Наступний:Проблема з дозволом на завантаження файлу VSFTP
 Орендодавець| Опубліковано 11.12.2021 17:35:26 |
[Підрозділ]Блок зазвичай є першим блоком конфігураційного файлу, який визначає метадані одиниці та те, як він пов'язаний з іншими одиницями. Основні галузі такі.

Опис: Короткий опис
Документація: Адреса документа
Вимагає: Інші пристрої, від яких залежить поточний блок, і якщо вони не працюють, поточний блок не запуститься
Потрібні: Інші пристрої, які працюють з поточним блоком, якщо вони не працюють, поточний пристрій не запускається
BindsTo: Подібно до Requires, він визначає Unit, який змушує поточний Unit зупиняти роботу при виході
До: Якщо Одиниця, вказана в цьому полі, також має бути запущена, вона має бути запущена після поточної Одиниці
Після: Якщо Одиниця, вказана в цьому полі, також має бути запущена, вона має бути запущена раніше поточної Одиниці
Конфлікти: Вказаний тут блок не може працювати одночасно з поточним блоком
Умова... : Умови, які мають бути виконані для роботи поточного пристрою, інакше він не працюватиме
Стверджувати... : Умови, які мають бути виконані для роботи поточного пристрою, інакше буде зафіксовано про відмову при запуску
[Встановити]Зазвичай це останній блок конфігураційного файлу, який визначає, як завантажуватися і чи слід завантажуватися. Основні галузі такі.

WantedBy: Його значення — одна або кілька цілей, і коли поточний Unit активний (enable), символічне посилання розміщується в піддиректорії під каталогом /etc/systemd/system з суфіксом Target name + .wants
RequiredBy: Його значення — одна або кілька цілей, і коли поточний Unit активний, символічне посилання буде розміщено в піддиректорії під каталогом /etc/systemd/system з суфіксом Target name + .required
Псевдонім: Псевдонім, який поточний Юніт може використовувати для старту
Також: коли поточний пристрій активується, інші одиниці активуються одночасно
[Сервіс]Блоки використовуються для налаштування сервісів, і лише одиниці типу Service мають цей блок. Основні галузі такі.

Тип: Визначає поведінку процесу при запуску. Вона має такі значення.
Type=simple: значення за замовчуванням, виконайте команду, задану ExecStart, щоб запустити основний процес
type=forking: Fork створює дочірній процес із батьківського процесу, який одразу після створення виходить з експлуатації
Type=oneshot: одноразовий процес, Systemd чекає виходу поточного сервісу, перш ніж продовжити виконання
Type=dbus: Поточний сервіс запускається через D-Bus
type=notify: Коли поточний сервіс запущено, Systemd буде сповіщений і продовжить виконання
type=idle: Поточний сервіс запускається лише у разі виконання інших завдань
ExecStart: Команда для запуску поточної служби
ExecStartPre: Команда, виконана перед запуском поточної служби
ExecStartPost: Команда, виконана після запуску поточного сервісу
ExecReload: Команда, що виконується при перезапуску поточного сервісу
ExecStop: Команда, яка виконується, коли поточний сервіс зупинено
ExecStopPost: Зупинити команду, яка виконується під час її доставки
RestartSec: Кількість секунд між автоматичним перезапуском поточного сервісу
Restart: Визначає обставини, за яких Systemd автоматично перезапускає поточний сервіс, з можливими значеннями, такими як завжди, на успіху, на помилці, на аномальному режимі, на припиненні, на watchdog
TimeoutSec: Визначає кількість секунд, які Systemd чекає перед припиненням поточного сервісу
Середовище: Вкажіть змінну середовища


 Орендодавець| Опубліковано 11.12.2021 17:37:33 |
Тип=розгалуження
Systemd вважає, що сервіс запускається успішно, коли сервісний процес форкується і батьківський процес виходить. Для звичайних демонів, якщо ви не впевнені, що цей метод запуску не відповідає вашим потребам, можна почати з цього типу. При цьому типі запуску також слід вказати PIDFile=, щоб systemd міг відстежувати основний процес сервісу

 Орендодавець| Опубліковано 15.12.2021 16:55:14 |
Команда EnvironmentFile

EnvironmentFile схожий на директиву Environment, але зчитує змінні середовища з текстового файлу. Текстовий файл повинен містити призначення змінних, розділені розривами рядків

приклад

Ви можете взяти цей файл середовища і використати його змінні наступним чином:



 Орендодавець| Опубліковано 04.01.2022 15:56:55 |
 Орендодавець| Опубліковано 05.01.2022 09:48:21 |
Шлях до стандартного сервісного файлу docker /usr/lib/systemd/system/docker.service

 Орендодавець| Опубліковано 23.01.2022 22:57:56 |
Переглянути всі статуси служби



Запит, чи увімкнено сервіс, використовуючи NFS як приклад:

 Орендодавець| Опубліковано 25.02.2025 17:01:08 |
Масові стартові сервіси, які починаються з ABC

 Орендодавець| Опубліковано 11.04.2025 15:57:14 |
DefaultTimeoutStartSec= та DefaultTimeoutStopSec= за замовчуванням 90 секунд у Системному диспетчері та 90 секунд у User Manager.

Вхід за гіперпосиланням видно.

Перегляньте конфігурацію вказаної служби за допомогою наступної команди:


Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com