Systemd: Батько всіх інших процесів
Система Linux та будь-яка інша система * nix завжди запускає процес, який є батьком усіх інших процесів. Коли ви використовуєте Systemd, цей процес є systemd, процес завжди називається "init", незалежно від системи init. Після запуску systemd він запускає демони, які запускають підсистеми. Демони контролюють, які ресурси у вас є і які системи відкриті. Запит на вхід - це послуга, якою керує systemd. Systemd запускає багато інших служб, а також монтує всі ваші диски, включаючи оснащення.
Як ви контролюєте те, що починається?
Перш за все, найраніша система ініціалізації мала рівні запуску, які впізнають багато читачів. Рівень 1 був однокористувацьким, 2 багатокористувацьким без мереж і 3-5 багатокористувацьким та графічним. Встановлення рівня пробігу в 0 означало зупинку і 6 означало перезавантаження. Розробники systemd виявили, що ці рівні незрозумілі, тому змінили їх на цілі. Цілі не зовсім однакові, але мають подібну функцію. Коли працює конкретна ціль, працює конкретна колекція одиниць. Детальніше про одиниці пізніше.
Встановлення "рівня запуску", що називається ціллю.
Ви можете змінити ціль під час запуску, наприклад, ви можете використовувати термінал, щоб встановити ціль для багатокористувацької. Це зупинить ваш графічний інтерфейс, X або Wayland, але дозволить вам та іншим увійти в систему за допомогою текстової консолі. Використовуйте наступну команду.
$ systemctl isolate multiuser.цільАбо, якщо ви хочете запустити робочий стіл, використовуйте замість цього наступну команду.
$ systemctl ізолювати графічно.цільТе, що вас насправді цікавить, це те, як розпочати правильний рівень, ви можете дізнатись, що у вас зараз, таким чином.
$ systemctl get-defaultЩоб змінити за замовчуванням, встановіть його.
$ systemctl графічний набір за замовчуванням.цільЦя команда насправді змушує запускати багато одиниць та служб під час завантаження комп’ютера. Можливо, ви захочете запустити або зупинити одну службу.
ЗАПУСК, зупинка, увімкнення та вимкнення послуги.
Тут ви маєте можливість змінити те, що відбувається при завантаженні та під час нормальної роботи. На відміну від цілей, одиниці є спеціальними для певної служби. Щоб зупинити службу, ви використовуєте "systemctl stop", однаково ви можете використовувати "start" і "restart". Для запуску служби під час завантаження ви використовуєте "увімкнути", щоб зупинити її "вимкнути". Виберіть послугу та запустіть та зупиніть її, поки вона працює.
$ systemctl статусні чашки.обслуговуванняЦя команда відображає статус служби, а також список дій, вжитих системою щодо послуги. Щоб зупинити службу, використовуйте команду нижче.
$ systemctl стоп-чашки.обслуговуванняЗараз служба зупинена на поточному сеансі. Щоб змінити його на не починається при наступному завантаженні, використовуйте деактивувати.
$ systemctl відключає чашки.обслуговуванняЗверніть увагу, що ви могли лише відключити послугу, це не вплине на вашу поточну ситуацію. Послуга просто продовжує працювати. При наступному завантаженні він не запустить службу.
Systemd також контролює кріплення, пристрої, розетки тощо. Одиниці нижче і їх легше зрозуміти, якщо ви вже мали справу з Linux раніше. Ви також можете встановити їх самостійно, але найбільший ефект при завантаженні - це управління службами.
Як ви додаєте власні сценарії?
Ви можете додати свої власні сценарії досить просто, цікаві відомості - це те, як ви робите свій сценарій або послугу залежними від інших. Це чітко продемонстровано у цьому файлі служби відновлення wifi.
[Одиниця]Опис = Перезапустіть мережевий менеджер при відновленні
Після = призупинити.ціль
Після = сплячий режим.ціль
Після = гібрид-сон.ціль
[Сервіс]
Введіть = oneshot
ExecStart = / bin / systemctl перезапустіть мережевий менеджер.обслуговування
[Встановити]
WantedBy = призупинити.ціль
WantedBy = сплячий режим.ціль
WantedBy = гібридний сон.ціль
Цей код створює службу, яка трапляється один раз (onehot) після трьох цілей, згаданих у коді. Код, який виконується, у цьому випадку є однією командою. Ви можете так само направити ExecStart на скрипт на ваш вибір.
Висновок
Змінивши свою систему, особливо її завантаження, ви можете зробити самі, але пам’ятайте, що це має багато наслідків для кожної служби, тому переконайтесь, що ваш код стабільний і швидко виконується.