systemd

Systemd - Jak to się uruchamia Twój system

Systemd - Jak to się uruchamia Twój system
Systemd został opracowany, gdy programiści odkryli, że równoległe uruchomienie systemu nie jest możliwe. Starsze systemy przeglądają swoje pliki startowe jeden po drugim. Może to spowodować zatrzymanie rozruchu podczas oczekiwania na wolne zasoby. Jednym z przykładów jest sytuacja, gdy proces musi mieć uruchomioną sieć. Korzystanie z sieci jest bardzo powolne, inne zasoby nie powinny czekać. Ten problem można złagodzić na inne sposoby, ale dzięki systemd wszystkie uruchamianie są wykonywane równolegle, jeśli to możliwe. Rezultatem powinno być znacznie szybsze uruchamianie złożonych systemów, w tym komputera stacjonarnego.

Systemd: Ojciec wszystkich innych procesów

Linux i każdy inny *nix, system zawsze uruchamia proces, który jest ojcem wszystkich innych procesów. Kiedy używasz Systemd, ten proces jest systemd, proces jest zawsze nazywany „init”, niezależnie od systemu init. Po uruchomieniu systemd uruchomi demony obsługujące podsystemysystem. Demony kontrolują, jakie masz zasoby i jakie systemy są otwarte. Twój monit logowania jest usługą zarządzaną przez systemd. Systemd uruchamia wiele innych usług, a także montuje wszystkie twoje dyski, w tym mocowania zatrzaskowe.

Jak kontrolujesz to, co się zaczyna??

Po pierwsze, najwcześniejszy system init miał poziomy działania, które rozpozna wielu czytelników. Poziom działania 1 był trybem jednego użytkownika, 2 trybem wielu użytkowników bez sieci i 3-5 trybem wielu użytkowników i grafiką. Ustawienie poziomu pracy na 0 oznaczało zatrzymanie, a 6 oznaczało ponowne uruchomienie. Twórcy systemd uznali te poziomy za niejasne, więc zmienili je na cele. Cele nie są dokładnie takie same, ale pełnią podobną funkcję. Gdy działa określony cel, działa określony zbiór jednostek. Więcej o jednostkach później.

Ustawianie „poziomu pracy”, zwanego celem.

Możesz zmienić cel podczas pracy, na przykład możesz użyć terminala, aby ustawić cel na wielu użytkowników. To zatrzymałoby twój GUI, X lub Wayland, ale pozwoliłoby Tobie i innym zalogować się za pomocą konsoli tekstowej. Użyj następującego polecenia.

$ systemctl izoluj wielu użytkowników.cel

Lub, jeśli chcesz uruchomić pulpit, użyj zamiast tego następującego polecenia.

$ systemctl izoluj graficzny.cel

To, co naprawdę Cię interesuje, to jak rozpocząć właściwy poziom, w ten sposób możesz dowiedzieć się, co masz teraz have.

$ systemctl get-default

Aby zmienić ustawienie domyślne to.

$ systemctl set-default graficzny.cel

To polecenie faktycznie powoduje uruchomienie wielu jednostek i usług podczas uruchamiania komputera. Możesz jednak uruchomić lub zatrzymać jedną usługę.

URUCHAMIANIE, zatrzymywanie, włączanie i wyłączanie usługi.

Tutaj masz szansę zmienić to, co dzieje się przy starcie i podczas normalnej pracy. W przeciwieństwie do celów, jednostki są specjalne dla konkretnej usługi. Aby zatrzymać usługę, użyj „systemctl stop”, równie dobrze możesz użyć „start” i „restart”. Aby usługa uruchamiała się przy starcie, użyj opcji „włącz”, aby ją zatrzymać „wyłącz”. Wybierz usługę i uruchom ją i zatrzymaj, gdy jest uruchomiona.

$ puchary statusu systemctl.usługa

To polecenie pokazuje status usługi, pokazuje również listę działań podjętych przez system w odniesieniu do usługi. Aby zatrzymać usługę, użyj poniższego polecenia.

$ systemctl zatrzymaj kubki.usługa

Usługa została zatrzymana dla bieżącej sesji. Aby zmienić to, aby nie uruchamiał się przy następnym uruchomieniu, użyj opcji disable.

$ systemctl wyłącz filiżanki.usługa

Zauważ, że możesz wyłączyć usługę tylko, nie miałoby to wpływu na twoją obecną sytuację. Usługa po prostu działa dalej. Jednak przy następnym uruchomieniu nie uruchomi usługi.

Systemd steruje również uchwytami, urządzeniami, gniazdami i nie tylko. Jednostki są niższe i łatwiejsze do zrozumienia, jeśli wcześniej miałeś do czynienia z Linuksem. Możesz je również ustawić samodzielnie, ale największy wpływ na rozruch ma kontrolowanie usług.

Jak dodawać własne skrypty?

Możesz dość łatwo dodawać własne skrypty, a szczegóły, które warto poznać, to sposób, w jaki możesz uzależnić swój skrypt lub usługę od innych. Jest to zgrabnie zademonstrowane w tym pliku usługi wznowienia Wi-Fi.

[Jednostka]
Description=Uruchom ponownie menedżera sieci przy wznowieniu
Po=zawieś.cel
Po=hibernacja.cel
Po=snu hybrydowego.cel
 
[Usługa]
Typ = jeden strzał
ExecStart=/bin/systemctl uruchom ponownie menedżera sieci.usługa
 
[Zainstalować]
Poszukiwany przez=zawieś.cel
Poszukiwany przez = hibernacja.cel
WantedBy=uśpienie hybrydowe.cel

Ten kod tworzy usługę, która zdarza się raz (jednorazowo) po trzech celach wymienionych w kodzie. Wykonywany kod jest w tym przypadku pojedynczym poleceniem. Równie dobrze możesz wskazać ExecStart na wybrany przez siebie skrypt.

Wniosek

Zmieniając swój system, a zwłaszcza sposób jego uruchamiania, możesz zrobić sam, ale uważaj, że ma to wiele konsekwencji dla każdej usługi, więc upewnij się, że Twój kod jest stabilny i szybki do wykonania.

Gry Zainstaluj najnowszy emulator Dolphin dla Gamecube i Wii w systemie Linux
Zainstaluj najnowszy emulator Dolphin dla Gamecube i Wii w systemie Linux
Emulator Dolphin pozwala grać w wybrane gry Gamecube i Wii na komputerach osobistych z systemem Linux (PC). Będąc ogólnodostępnym emulatorem gier o o...
Gry Jak korzystać z GameConqueror Cheat Engine w systemie Linux
Jak korzystać z GameConqueror Cheat Engine w systemie Linux
Artykuł zawiera przewodnik dotyczący korzystania z silnika oszukującego GameConqueror w systemie Linux. Wielu użytkowników, którzy grają w gry w syste...
Gry Najlepsze emulatory konsoli do gier dla systemu Linux
Najlepsze emulatory konsoli do gier dla systemu Linux
W tym artykule wymienimy popularne oprogramowanie do emulacji konsoli do gier dostępne dla systemu Linux. Emulacja to warstwa kompatybilności oprogram...