Що таке ціль системи, служба та гніздо?


35

Я знаю, що всі вони є одиничними файлами, але я не можу зрозуміти їх особливого значення. Я думаю, що цілі схожі на демон і сокети такі ж, як сокет (IP + порт), але також і з номерами inode. Може хто-небудь пояснить їх простими словами?


3
У Systemd manсторінки є зразковими: ви дивилися на man systemd.{service,socket,target}?
Jasonwryan

@jasonwryan Насправді я подивився і не маю повної відповіді. Я дивлюся цій темі, щоб я також міг вчитися. Я знаю, що таке служба, сокет, але у мене є розрив, коли справа доходить до цілі. Я все ще досліджую і відповім на питання, чи стане мені це достатньо зрозумілим.
Л. Д. Джеймс

Відповіді:


40

Блоки обслуговування:

A unit configuration file whose name ends in .service encodes
information about a process controlled and supervised by systemd.

- systemd.service (5)

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

Розетки:

A unit configuration file whose name ends in ".socket" encodes
information about an IPC or network socket or a file system FIFO
controlled and supervised by systemd, for socket-based activation.

- systemd.socket (5)

З іншого боку, сокетні блоки фактично не запускають демонів самостійно. Натомість вони просто сидять там і слухають IP-адресу та порт або сокет домену UNIX, і коли щось підключається до нього, запускається демон, для якого є сокет, і передається з'єднання.

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

Цільові одиниці:

A unit configuration file whose name ends in ".target" encodes
information about a target unit of systemd, which is used for grouping
units and as well-known synchronization points during start-up.

- systemd.target (5)

Цілі використовуються для групування та замовлення одиниць. Вони є дещо приблизним еквівалентом рівнів запуску, оскільки при різних цілях запускаються різні служби, розетки та інші блоки. На відміну від рівнів, вони набагато вільніші, і ви можете легко створити власні цілі для замовлення одиниць, а цілі залежать між собою.

Наприклад, multi-user.targetце те, під чим згруповано більшість демонів, і його потрібно basic.targetактивувати, а це означає, що всі послуги, згруповані під, basic.targetбудуть запускатися перед послугами в multi-user.target.


11

Документація для systemd відмінно підходить для такого відносно нового проекту. Для того, щоб почати з цілями , з man systemd.target:

Цільові одиниці не пропонують додаткової функціональності, крім загальної функціональності, яку надають одиниці. Вони існують лише для групування одиниць за допомогою залежностей (корисних як цілі завантаження) та для встановлення стандартизованих імен для точок синхронізації, що використовуються в залежності між одиницями. Крім усього іншого, цільові блоки - це більш гнучка заміна для рівнів SysV в класичній системі init SysV.

Ці "групи одиниць" охоплюють масив різних функціональних можливостей, від basic.targetяких по суті охоплює завантаження системи, через Everyhting з dbus, gettys, точки монтажу до swap та таймерів. Повний список можна переглянути за допомогою man systemd.special.

службові файли - це основні одиниці для запуску процесів, керованих systemd. Знову від man systemd.service:

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

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

Нарешті, розетки від man systemd.socket:

Файл конфігурації блоку, ім'я якого закінчується на ".socket", кодує інформацію про IPC або мережевий сокет або файлову систему FIFO, що контролюється і контролюється systemd, для активації на основі сокета.

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

На додачу до manсторінок, варто прочитати серію публікацій блогу Lennart, систематизовану для адміністраторів , яка забезпечує глибокий погляд на архітектуру та реалізацію systemd (на даний момент у цій серії є 20 повідомлень).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.