системний

Systemd - Як це запускає вашу систему

Systemd - Як це запускає вашу систему
Systemd був розроблений, коли розробники виявили, що паралельний запуск системи неможливий. Старіші системи по черзі переглядають свої файли запуску системи. Це може спричинити зупинку завантаження під час очікування повільних ресурсів. Одним з прикладів цього є той факт, коли для процесу потрібно мати мережу запущеною. Використання мережі відбувається дуже повільно, інших ресурсів чекати не доведеться. Цю проблему можна пом'якшити іншими способами, але в systemd всі запуски виконуються паралельно, де це можливо. Результатом має стати набагато швидший запуск складних систем, що включає вашу настільну систему.

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 на скрипт на ваш вибір.

Висновок

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

Як використовувати Xdotool для стимулювання клацань миші та натискань клавіш у Linux
Xdotool - це безкоштовний інструмент командного рядка з відкритим кодом для імітації клацань миші та натискань клавіш. У цій статті буде розглянуто ко...
Топ 5 ергономічних продуктів для комп'ютерної миші для Linux
Чи викликає тривале використання комп’ютера біль у зап’ясті або пальцях? Ви страждаєте від ригідності суглобів і вам постійно доводиться трясти руки? ...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...