Я знаю, що всі вони є одиничними файлами, але я не можу зрозуміти їх особливого значення. Я думаю, що цілі схожі на демон і сокети такі ж, як сокет (IP + порт), але також і з номерами inode. Може хто-небудь пояснить їх простими словами?
Я знаю, що всі вони є одиничними файлами, але я не можу зрозуміти їх особливого значення. Я думаю, що цілі схожі на демон і сокети такі ж, як сокет (IP + порт), але також і з номерами inode. Може хто-небудь пояснить їх простими словами?
Відповіді:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
Підрозділи системного обслуговування - це одиниці, які фактично виконують та відстежують програми та демон, і залежності використовуються для того, щоб переконатися, що послуги запускаються у правильному порядку. Вони є найбільш часто використовуваним типом одиниць.
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.
З іншого боку, сокетні блоки фактично не запускають демонів самостійно. Натомість вони просто сидять там і слухають 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.
Цілі використовуються для групування та замовлення одиниць. Вони є дещо приблизним еквівалентом рівнів запуску, оскільки при різних цілях запускаються різні служби, розетки та інші блоки. На відміну від рівнів, вони набагато вільніші, і ви можете легко створити власні цілі для замовлення одиниць, а цілі залежать між собою.
Наприклад, multi-user.target
це те, під чим згруповано більшість демонів, і його потрібно basic.target
активувати, а це означає, що всі послуги, згруповані під, basic.target
будуть запускатися перед послугами в multi-user.target
.
Документація для 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 повідомлень).
man
сторінки є зразковими: ви дивилися наman systemd.{service,socket,target}
?