LFCS Zarządzanie procesem i usługami uruchamiania systemu (Sysvinit, SystemD i Upstart) - Część 7

LFCS Zarządzanie procesem i usługami uruchamiania systemu (Sysvinit, SystemD i Upstart) - Część 7

Kilka miesięcy temu Fundacja Linux ogłosiła LFCS (Sysadmin z certyfikatem Linux Foundation) Certyfikacja, ekscytujący nowy program, którego celem pozwala osobom ze wszystkich krańców świata na uzyskanie certyfikat. Obejmuje to wspieranie już uruchamiających systemów i usług, a także ustalanie problemów i analizy z pierwszej ręki, a także możliwość decydowania, kiedy podnieść problemy dla zespołów inżynieryjnych.

Certyfikowane sysadmin Linux Foundation - część 7

Poniższy film opisuje krótkie wprowadzenie do programu certyfikacji Fundacji Linux.

Ten post jest częścią 7 z 10-tutorialskiej serii, tutaj, w tej części, wyjaśnimy, jak zarządzać procesem i usługami uruchamiania systemu Linux, które są wymagane do egzaminu certyfikacyjnego LFCS.

Zarządzanie procesem uruchamiania Linux

Proces rozruchu systemu Linux składa się z kilku faz, każda reprezentowana przez inny komponent. Poniższy schemat krótko podsumowuje proces rozruchu i pokazuje wszystkie zaangażowane elementy.

Proces rozruchu Linux

Po naciśnięciu Moc przycisk na komputerze, oprogramowaniu, które jest przechowywane w EEPROM układ na płycie głównej inicjuje POST (Samokontrolowy test) Aby sprawdzić stan zasobów sprzętowych systemu. Kiedy POST jest gotowe, oprogramowanie układowe następnie przeszukuje i ładuje 1. etap ładowarka rozruchowa, znajdująca się w Mbr lub w Efi partycja pierwszego dostępnego dysku i daje mu kontrolę.

Metoda MBR

Mbr znajduje się w pierwszym sektorze dysku oznaczonego jako rozruch BIOS Ustawienia i jest 512 bajty wielkości.

  1. Pierwsze 446 bajtów: Bootloader zawiera zarówno kod wykonywalny, jak i tekst komunikatu o błędzie.
  2. Następne 64 bajty: Tabela partycji zawiera rekord dla każdej z czterech partycji (pierwotna lub rozszerzona). Każdy rekord wskazuje między innymi status (aktywny / nie aktywny), rozmiar i sektory początkowe / końcowe każdej partycji.
  3. Ostatnie 2 bajty: Magiczna liczba służy jako sprawdzenie sprawdzania poprawności MBR.

Następujące polecenie wykonuje kopię zapasową Mbr (W tym przykładzie, /dev/sda jest pierwszym dysku twardym). Wynikowy plik, Mbr.BKP może się przydać, jeśli tabela partycji stanie się uszkodzona, na przykład renderowanie systemu.

Oczywiście, aby użyć go później, jeśli zajdzie taka potrzeba, będziemy musieli ją zapisać i przechowywać gdzie indziej (jak USB na przykład napęd)). Ten plik pomoże nam przywrócić MBR i przyniesie nam ponowne odejście, jeśli i tylko wtedy, gdy nie zmienimy układu dysku twardego w tymczasem.

Kopia zapasowa mbr
# dd if =/dev/sda o = mbr.BKP BS = 512 Liczba = 1 
Kopia zapasowa MBR w Linux
Przywracanie MBR
# dd if = mbr.BKP o =/dev/sda bs = 512 liczba = 1 
Przywróć MBR w Linux

Metoda EFI/UEFI

Dla systemów korzystających z Efi/Uefi Metoda, oprogramowanie układowe UEFI odczytuje swoje ustawienia, aby ustalić, która aplikacja UEFI ma zostać uruchomiona i skąd (i.mi., w którym znajduje się dysk i partycja partycja EFI).

Następnie 2. etap BOOT LOADER (AKA BOOT Manager) jest ładowany i uruchamiany. ŻARCIE [[[Grand Unified Boot] jest najczęściej używanym menedżerem rozruchu w Linux. Jedną z dwóch różnych wersji można znaleźć w większości używanych systemów.

  1. Plik konfiguracyjny Gruba Legacy:/boot/grub/menu.LST (starsze dystrybucje, nie obsługiwane przez firmy EFI/UEFI).
  2. Plik konfiguracyjny Grub2: najprawdopodobniej,/etc/default/grub.

Chociaż cele LFCS Egzamin nie proś wyraźnie o wiedzę o ŻARCIE wewnętrzne, jeśli jesteś odważny i możesz sobie pozwolić na zepsucie systemu (możesz spróbować najpierw na maszynie wirtualnej, na wszelki wypadek), musisz uruchomić.

# aktualizacja Grub 

Jak źródło Po zmodyfikowaniu konfiguracji Gruba w celu zastosowania zmian.

Zasadniczo, ŻARCIE ładuje domyślnie jądro i initrd Lub initramfs obraz. Kilka słów, initrd lub initramfs pomagają wykonywać wykrywanie sprzętu, ładowanie modułu jądra i odkrycie urządzenia niezbędne do zamontowania prawdziwego systemu plików.

Po upływie prawdziwego systemu plików root, jądro wykonuje menedżer systemu i serwisu (w tym Lub Systemd, którego identyfikacja procesu lub PID jest zawsze 1), aby rozpocząć normalny proces rozruchu w przestrzeni użytkownika, aby przedstawić interfejs użytkownika.

Obydwa w tym I Systemd to demony (procesy w tle), które zarządzają innymi demonami, jako pierwsza usługa, która rozpocznie się (podczas rozruchu) i ostatnia usługa zakończenia (podczas zamknięcia).

Systemd i init

Usługi początkowe (Sysvinit)

Koncepcja LEVEVELLES w systemie Linux określa różne sposoby korzystania z systemu poprzez kontrolowanie, które usługi działają. Innymi słowy, runklevel kontroluje, jakie zadania można wykonać w bieżącym stanie wykonywania = RunLevel (a których nie mogą).

Tradycyjnie ten proces startupu został przeprowadzony na podstawie konwencji, które powstały System V UNIX, z systemem przechodzącym z kolekcji skryptów, które rozpoczynają i zatrzymują usługi, gdy maszyna wprowadziła określony poziom rundy (który innymi słowy, jest innym sposobem uruchamiania systemu).

W ramach każdego poziomu biegacza można ustawić indywidualne usługi lub zostać zamknięte w przypadku uruchomienia. Najnowsze wersje niektórych głównych dystrybucji odchodzą od System v standard na korzyść raczej nowego menedżera usług i systemu o nazwie Systemd (który oznacza demon systemowy), ale zwykle wspiera Sysv Polecenia do celów kompatybilności. Oznacza to, że możesz uruchomić większość znanych Sysv narzędzia init w dystrybucji opartej na systemie.

Przeczytaj także: Dlaczego „Systemd” zastępuje „init” w Linux

Oprócz rozpoczęcia procesu systemowego, w tym patrzy na /etc/inittab plik, aby zdecydować, jakiego runLevel należy wprowadzić.

RunLevel Opis
0  Zatrzymaj system. RunLevel 0 to specjalny stan przejściowy używany do szybkiego wyłączenia systemu.
1  Również pseudonim do S lub S, ten poziom bieżący jest czasem nazywany trybem konserwacji. Jakie usługi, jeśli w ogóle, zostały uruchomione na tym poziomie bieżącym, różnią się w zależności od dystrybucji. Jest zwykle używany do konserwacji systemu niskiego poziomu, który może być upośledzony przez normalne działanie systemu.
2  Multiuser. W systemach i instrumentach pochodnych Debian jest to domyślny poziom biega. W systemach opartych na czerwono-hat jest to tryb wielopisu bez sieci.
3  W systemach opartych na czerwono-hat jest to domyślny tryb wielopostaciowy, który uruchamia wszystko oprócz środowiska graficznego. Ten poziom biegów i poziomów 4 i 5 zwykle nie są używane w systemach opartych na debian.
4  Zazwyczaj domyślnie nieużywane i dlatego dostępne do dostosowywania.
5  W systemach opartych na czerwonym hat, pełny tryb wielopasmowy z loginem GUI. Ten poziom biegaczy jest jak poziom 3, ale z dostępnym loginem GUI.
6  Uruchom ponownie system.

Aby przełączyć między poziomami run, możemy po prostu wydać zmianę biegów za pomocą za pomocą w tym Polecenie: init N (gdzie n jest jednym z wyżej wymienionych poziomów). Należy pamiętać, że nie jest to zalecany sposób przeniesienia systemu działającego na inny poziom bieg, ponieważ nie daje on ostrzeżenia istniejącym zalogowanym użytkownikom (powodując, że stracili pracę i procesy, aby nieprawidłowo zakończyć się).

Zamiast tego zamknięcie Polecenie powinno być używane do ponownego uruchomienia systemu (który najpierw wysyła komunikat ostrzegawczy do wszystkich zalogowanych użytkowników i blokuje dowolne kolejne loginy; następnie sygnalizuje init, aby przełączyć poziomy run); jednak domyślny poziom runklevel (ten, do którego uruchomi się) musi być edytowany w /etc/inittab plik najpierw.

Z tego powodu wykonaj następujące kroki, aby poprawnie przełączyć między poziomami run, jako root, poszukaj następującego wiersza w /etc/inittab.

Id: 2: initDefault: 

i zmień liczbę 2 W przypadku pożądanego LEVEL z preferowanym edytorem tekstu, takim jak VIM (opisany w How To Using VI/VIM Editor w Linux - część 2 tej serii).

Następnie uruchom jako root.

# shutdown -r teraz 

To ostatni polecenie ponownie uruchomi system, powodując, że uruchamia się go w określonym poziomie biegu podczas następnego rozruchu i uruchomi skrypty znajdujące się w /etc/rc [runLevel].D katalog, aby zdecydować, które usługi powinny zostać uruchomione, a które nie powinny. Na przykład dla RunLevel 2 w następującym systemie.

Zmień linevels w Linux

Zarządzaj usługami za pomocą CHKCONFIG

Aby włączyć lub wyłączyć usługi systemowe podczas rozruchu, użyjemy polecenia ChkConfig w Centos / OpenSuse i SYSV-RC-CONF w debian i instrumentach pochodnych. To narzędzie może również pokazać nam, jaki jest określony stan usługi dla konkretnego poziomu biegów.

Przeczytaj także: Jak zatrzymać i wyłączyć niechciane usługi w Linux

Wymień konfigurację RunLevel dla usługi.

# CHKCONFIG - -LIST [Nazwa usługi] # CHKCONFIG -LIST Postfix # CHKCONFIG - -LIST MYSQLD 
Lista konfiguracji RunLevel

Na powyższym obrazie możemy to zobaczyć przyrostek ma się uruchomić, gdy system wejdzie 2 Poprzez 5, mając na uwadze, że Mysqld Będzie działać domyślnie dla RunLevels 2 Poprzez 4. Załóżmy teraz, że to nie jest oczekiwane zachowanie.

Na przykład musimy włączyć Mysqld dla RunLevel 5 Również i wyłącz Postfix dla RunLevels 4 i 5. Oto, co zrobilibyśmy w każdym przypadku (uruchom następujące polecenia jako root).

Umożliwienie usługi dla określonego poziomu biegów
# CHKCONFIG -Level [poziomy (s)] na # CHKCONFIG -Level 5 Mysqld on 
Wyłączenie usługi dla poszczególnych poziomów
# CHKCONFIG -Level [Level (s)] usługa # CHKCONFIG -Level 45 Postfix Off 
Włącz usługi Wyłącz

Będziemy teraz wykonywać podobne zadania w Oparte na debian Używanie systemu SYSV-RC-CONF.

Zarządzaj usługami za pomocą SYSV-RC-CONF

Konfigurowanie usługi, aby automatycznie rozpocząć się na określonym poziomie bieżącym i zapobiec rozpoczynaniu od wszystkich innych.

1. Użyjmy następującego polecenia, aby zobaczyć, jakie są runklevels, gdzie Mdadm jest skonfigurowany do uruchamiania.

# ls -l /etc /rc [0-6].D | grep -e 'rc [0-6] | mdadm' 
Sprawdź działanie serwisu

2. Użyjemy SYSV-RC-CONF Aby zapobiec rozpoczynaniu MDADM na wszystkich poziomach run 2. Po prostu sprawdź lub odznacz (za pomocą paska kosmicznego) zgodnie z potrzebami (możesz poruszać się w górę, w dół, w lewo i w prawo z klawiszami strzałek).

# sysv-rc-conf 
SYSV RunLevel Config

Następnie naciśnij Q do wyjścia.

3. Ponownie uruchomimy system i ponownie uruchomimy polecenie z KROK 1.

# ls -l /etc /rc [0-6].D | grep -e 'rc [0-6] | mdadm' 
Sprawdź obsługę serwisu

Na powyższym obrazie możemy to zobaczyć Mdadm jest skonfigurowany tak, aby zaczynać tylko na RunLevel 2.

A co z systemem?

Systemd to kolejny menedżer usług i systemu, który jest przyjmowany przez kilka głównych dystrybucji Linux. Ma na celu umożliwienie większego przetwarzania równolegle podczas uruchamiania systemu (w przeciwieństwie do Sysvinit, Co zawsze jest wolniejsze, ponieważ rozpoczyna przetwarzanie pojedynczo, sprawdza, czy jeden zależy od drugiego, i czeka na uruchomienie demonów, aby mogły uruchomić więcej usług) i służyć jako dynamiczne zarządzanie zasobami w systemowym systemie.

W ten sposób usługi są uruchamiane w razie potrzeby (aby uniknąć konsumpcji zasobów systemowych) zamiast uruchamiania bez solidnego powodu podczas rozruchu.

Przeglądanie statusu wszystkich procesów działających w twoim systemie, oba Systemd Native i Sysv Usługi, uruchom następujące polecenie.

# Systemctl 
Sprawdź wszystkie uruchomione procesy

OBCIĄŻENIE kolumna pokazuje, czy definicja jednostki (patrz JEDNOSTKA Kolumna, która pokazuje usługę lub cokolwiek utrzymywanego przez SystemD) została odpowiednio załadowana, a AKTYWNY I POD Kolumny pokazują bieżący status takiego urządzenia.

Wyświetlanie informacji o aktualnym statusie usługi

Kiedy AKTYWNY Kolumna wskazuje, że status jednostki jest inny niż aktywny, możemy sprawdzić, co się stało za pomocą.

# Status Systemctl [jednostka] 

Na przykład na powyższym obrazku, Media-Samba.uchwyt jest w stanie nieudanym. Biegnijmy.

# SystemCtl Status Media-A-A-A-Samba.uchwyt 
Sprawdź status usługi

Widzimy to Media-Samba.uchwyt nie powiodło się, ponieważ proces montowania na hoście Dev1 nie był w stanie znaleźć udziału w sieci pod adresem // 192.168.0.10/Gacanepa.

Uruchomienie lub zatrzymanie usług

Gdy sieć się podzieli // 192.168.0.10/Gacanepa staje się dostępny, spróbujmy zacząć, a następnie zatrzymać się i wreszcie uruchom ponownie urządzenie Media-Samba.uchwyt. Po wykonaniu każdej akcji uruchommy status SystemCtl Media-A-Samba.zamontować, aby sprawdzić jego status.

# SystemCtl Start Media-A-Samba.Mount # SystemCtl Status Media-A-Samba.Mount # SystemCtl Stop Media-A-Samba.Mount # Systemctl restart media-samba.Mount # SystemCtl Status Media-A-Samba.uchwyt 
Rozpoczęcie przestrzegania usług
Włączanie lub wyłączenie usługi do rozpoczęcia podczas rozruchu

Pod Systemd Możesz włączyć lub wyłączyć usługę, gdy się uruchamia.

# Systemctl Włącz [usługa] # Włącz usługę # Systemctl Wyłącz [usługa] # Zapobiegaj rozpoczęciu usługi w rozruchu 

Proces włączania lub wyłączania usługi do automatycznego uruchamiania się po rozruchu polega na dodawaniu lub usuwaniu symbolicznych linków w /etc/systemd/system/multi-użytkownik.cel.chce informator.

Umożliwianie usług wyłączania

Alternatywnie możesz znaleźć aktualny status usługi (włączony lub wyłączony) za pomocą polecenia.

# SystemCtl IS-obserwowany [usługa] 

Na przykład,

# SystemCtl IS-obserwowany postfix.praca 

Ponadto możesz ponownie uruchomić lub wyłączyć system za pomocą.

# SystemCtl Reboot # SystemCtl Zamknięcie 

Dorobkiewicz

Dorobkiewicz to zamiennik oparty na wydarzeniach /sbin/init Daemon i narodził się tylko z potrzeby rozpoczęcia usług, kiedy są one potrzebne (także nadzorowanie ich podczas biegania) i obsługi zdarzeń w miarę ich wystąpienia, w ten sposób przewyższając klasyczny system Sysvinit oparty na zależnościach.

Został pierwotnie opracowany do rozkładu Ubuntu, ale jest używany w Red Hat Enterprise Linux 6.0. Chociaż miał być odpowiedni do wdrożenia we wszystkich rozkładach Linux jako zamiennik Sysvinit, z czasem zostało przyćmione przez Systemd. 14 lutego 2014 r. Mark Shuttyworth (założyciel Canonical Ltd.) ogłosił, że przyszłe wydania Ubuntu będą używać SystemD jako domyślnego demona init init.

Ponieważ Sysv Skrypt startupowy dla systemu jest tak powszechny od tak długiego, że duża liczba pakietów oprogramowania obejmuje skrypty startupowe SYSV. Aby pomieścić takie pakiety, Upstart zapewnia tryb kompatybilności: uruchamia skrypty uruchamiające SYSV w zwykłych lokalizacjach (/etc/rc.D/rc?.D, /etc/init.D/rc?.D, /etc/rc?.D, lub podobna lokalizacja). Tak więc, jeśli zainstalujemy pakiet, który nie zawiera jeszcze skryptu konfiguracyjnego Upstart, powinien on nadal uruchomić w zwykły sposób.

Ponadto, jeśli zainstalowaliśmy narzędzia, takie jak CHKCONFIG, powinieneś być w stanie użyć ich do zarządzania usługami opartymi na SYSV, podobnie jak w systemach opartych na Sysvinit.

Skrypty Upstart wspierają również początkowe lub zatrzymywanie usług w oparciu o szerszą gamę działań niż skrypty uruchamiające SYSV; Na przykład Upstart może uruchomić usługę, gdy dołączone jest określone urządzenie sprzętowe.

System, który zużywa Upstart, a jego rodzime skrypty zastępuje wyłącznie /etc/inittab Plik i specyficzne dla biegania Sysv Startup Script Directories z .conf Skrypty w /etc/init informator.

Te *.conf Skrypty (znane również jako definicje pracy) ogólnie składają się z następujących czynności:

    1. Opis procesu.
    2. RunLevels, w których proces powinien uruchomić lub zdarzenia, które powinny go uruchomić.
    3. Runkevels, w których proces powinien być zatrzymany lub zdarzenia, które powinny go zatrzymać.
    4. Opcje.
    5. Polecenie uruchomienia procesu.

Na przykład,

# Moja usługa testowa - Opis demonstracyjny skryptu „Upstart” „Oto opis„ mojej usługi testowej ”„ Autor ”Dave Null <[email protected]>„ # Stanzas # # Stanzas Zdefiniuj, kiedy i jak rozpoczyna się proces i zatrzymany # Zobacz listę zwrotek tutaj: http: // upstart.Ubuntu.com/wiki/stanzas # odrysku myFiles # Określ proces/polecenie (w razie potrzeby dodaj argumenty), aby uruchomić kopię zapasową exec bash.sh arg1 arg2 

Aby zastosować zmiany, musisz poinformować o ponownym załadowaniu jego konfiguracji.

# initctl Reload-Configuration 

Następnie rozpocznij pracę, wpisując następujące polecenie.

$ sudo uruchom swoją nazwa 

Gdzie Twoja nazwa to nazwa pracy, która została dodana wcześniej z Twoja nazwa.conf scenariusz.

Bardziej kompletny i szczegółowy przewodnik referencyjny dla Upstart jest dostępny na stronie internetowej projektu w menu „Książka kucharska”.

Streszczenie

Konieczna jest znajomość procesu rozruchu Linux, aby pomóc w rozwiązywaniu problemów, a także dostosowywania wydajności komputera i uruchamianiu usług do twoich potrzeb.

W tym artykule przeanalizowaliśmy, co dzieje się od momentu nacisku Moc przełącz, aby włączyć komputer, aż otrzymasz w pełni operacyjny interfejs użytkownika. Mam nadzieję, że nauczyłeś się czytać tak samo jak ja podczas łączenia. Zostaw swoje komentarze lub pytania poniżej. Zawsze czekamy na przesłuchanie od naszych czytelników!

Zostań certyfikowanym administratorem systemu