RHCSA Series Process Management w RHEL 7 BOOT, STLACKDOWN i wszystko pomiędzy - część 5

RHCSA Series Process Management w RHEL 7 BOOT, STLACKDOWN i wszystko pomiędzy - część 5

Zaczniemy ten artykuł od ogólnej i krótkiej wersji tego, co się dzieje od momentu naciśnięcia Moc przycisk, aby włączyć RHEL 7 serwer do czasu zaprezentowania ekranu logowania w interfejsie wiersza poleceń.

Proces rozruchu Linux

Proszę to zanotować:

1. Obowiązują te same podstawowe zasady z być może niewielkimi modyfikacjami, również do innych rozkładów Linux, a
2. Poniższy opis nie ma na celu przedstawienia wyczerpującego wyjaśnienia procesu rozruchu, ale tylko podstawy.

Proces rozruchu Linux

1. POST (Moc w autostlecie) inicjuje i wykonuje kontrole sprzętowe.

2. Kiedy POST kończy, kontrola systemu jest przekazywana do ładowarki rozruchowej pierwszego stopnia, który jest przechowywany w sektorze rozruchu jednego z dysków twardych (dla starszych systemów za pomocą BIOS i MBR) lub dedykowanej partycji EFI (U) EFI.

3. Najczęściej ładowarka z pierwszego etapu ładuje się na drugim etapie ładowarki rozruchowej ŻARCIE (Grand Unified Boot Loader), który znajduje się w środku /uruchomić, Co z kolei ładuje jądro i początkowy system plików oparty na pamięci RAM (znany również jako initramfs, który zawiera programy i pliki binarne, które wykonują niezbędne działania potrzebne do ostatecznego zamontowania rzeczywistego systemu plików root).

4. Przedstawiono nam ekran Splash, który pozwala nam wybrać system operacyjny i jądro do uruchomienia:

Ekran menu rozruchowego

5. Jądro konfiguruje sprzęt podłączony do systemu, a po zamontowaniu systemu plików głównych uruchamia proces z procesem PID 1, Co z kolei zainicjuje inne procesy i przedstawi nam monit logowania.

Notatka: Że jeśli chcemy to zrobić w późniejszym czasie, możemy zbadać szczegóły tego procesu za pomocą polecenia DMESG i filtrowania jego wyjścia za pomocą narzędzi, które wyjaśniliśmy w poprzednich artykułach z tej serii.

Ekran logowania i proces przetwarzania

W powyższym przykładzie użyliśmy dobrze znanego polecenie PS Aby wyświetlić listę bieżących procesów, których proces nadrzędny (lub innymi słowy, proces, który je uruchomił) jest Systemd (System i menedżer usług, na które przełączyły się większość nowoczesnych dystrybucji Linux) podczas uruchamiania systemu:

# ps -o pPID, pid, niezamazja, comm --ppid = 1 

Pamiętaj o tym -o flaga (skrót -format) pozwala przedstawić wyjście Ps w dostosowanym formacie dostosowanym do twoich potrzeb za pomocą słów kluczowych określonych w Standardowe specyfikatory formatu Sekcja w Man Ps.

Inny przypadek, w którym będziesz chciał zdefiniować wyjście Ps Zamiast iść z domyślnym, jest to, że trzeba znaleźć procesy, które powodują znaczący procesor i / lub obciążenie pamięci, i odpowiednio je sortować:

# ps aux--sort =+pcPu # sortowanie według %procesora (wznoszący się) # ps aux--sort = -pcpu # sortowanie według %procesora (zejście) # ps aux--sort =+pmem # sortowanie przez %mem (wzniesienie się ) # ps aux--sort = -pmem # sortowanie według %mem (zejście) # ps aux--sort =+pcPu, -pmem # łączyć sortowanie według %procesora (wznoszący się) i %mem (zejście) 
Dostosuj wyjście polecenia PS

Wprowadzenie do SystemD

Niewiele decyzji w świecie Linux spowodowało więcej kontrowersji niż przyjęcie Systemd przez główne dystrybucje Linuksa. Zwolennicy Systemda nazwa jako główne zalety następujące fakty:

Przeczytaj także: Historia „init” i „systemd”

1. SystemD umożliwia wykonywanie większego przetwarzania równolegle podczas uruchamiania systemu (w przeciwieństwie do starszych Sysvinit, co zawsze jest wolniejsze, ponieważ rozpoczyna przetwarzanie jeden po drugim, sprawdza, czy jeden zależy od drugiego, a następnie czeka na uruchomienie demonów, aby więcej usług może się uruchomić) i

2. Działa jako dynamiczne zarządzanie zasobami w działającym systemie. W ten sposób usługi są uruchamiane w razie potrzeby (aby uniknąć konsumpcji zasobów systemowych, jeśli nie są używane) zamiast uruchamiania bez ważnego powodu podczas rozruchu.

3. Wstecz kompatybilność z Sysvinit Skrypty.

Systemd jest kontrolowany przez Systemctl pożytek. Jeśli pochodzisz z Sysvinit Tło, są szanse, że będziesz znać:

  1. praca narzędzie, które - w tych starszych systemach - było używane do zarządzania skryptami Sysvinit, i
  2. Narzędzie ChkConfig, które służyło aktualizacji i zapytania o informacje o usługach systemowych dla usług systemowych.
  3. zamknięcie, którego musisz użyć kilka razy do ponownego uruchomienia lub zatrzymania działającego systemu.

Poniższa tabela pokazuje podobieństwa między użyciem tych starszych narzędzi i Systemctl:

Legacy narzędzie Systemctl Equivalent Opis
Uruchom nazwę usługi Systemctl Nazwa początkowa Nazwa początkowa (gdzie nazwa to usługa)
Nazwa usługi Zatrzymaj Nazwa zatrzymania Systemctl Zatrzymaj nazwę
Nazwa usługi Condrestart Nazwa Systemctl TRY-RESTART Ponowne uruchomienie nazwy (jeśli już działa)
Nazwa usługi restart Nazwa ponownego uruchomienia systemuctl Ponowne uruchomienie nazwy
Nazwa usługi Nazwa przeładowania SystemCtl Przeładowuje konfigurację nazwy
Status nazwy usługi Nazwa statusu SystemCtl Wyświetla aktualny status nazwy
Service -Status -All Systemctl Wyświetla status wszystkich bieżących usług
Nazwa chkconfig na Nazwa włączania Systemctl Włącz nazwę do uruchomienia na uruchomieniu, jak określono w pliku jednostki (plik, do którego punkty SymLink). Proces włączania lub wyłączania usługi do automatycznego uruchamiania się w rozruchu polega na dodawaniu lub usuwaniu symbolicznych łączy w katalogu/etc/systemd/system.
Nazwa chkconfig Systemctl wyłącz nazwę Wyłącza nazwę do uruchomienia na uruchomieniu, jak określono w pliku jednostki (plik, do którego punkty symboliczne)
CHKCONFIG -LIST Nazwa Nazwa obsługi systemuCTL IS Sprawdź, czy nazwa (określona usługa) jest obecnie włączona
CHKCONFIG -LIST Systemctl -Type = serwis Wyświetla wszystkie usługi i mówi, czy są one włączone, czy wyłączone
Zamknij -h teraz SystemCtl Poweroff Uruchom maszynę (Halt)
Zamknij -r teraz SystemCtl Reboot Uruchom ponownie system

Systemd Wprowadził także pojęcia jednostek (które mogą być usługą, punktem montażowym, urządzeniem lub gniazdem sieciowym) i celami (w ten sposób systemd udaje się rozpocząć kilka powiązanych procesów jednocześnie i można je rozpatrywać -cho nie jest równe, jak równoważny poziomie biegów Oparte na Sysvinit systemy.

Podsumowując

Inne zadania związane z zarządzaniem procesem obejmują między innymi możliwość:

1. Dostosuj priorytet wykonania, jeśli chodzi o korzystanie z zasobów systemowych, jeśli chodzi o proces:

Odbywa się to poprzez Renice narzędzie, które zmienia priorytet planowania jednego lub więcej procesów uruchamiających. Mówiąc prosto, priorytet planowania jest funkcją, która umożliwia jądro (obecne w wersjach => 2.6) Aby przydzielić zasoby systemowe zgodnie z przypisanym priorytetem wykonania -20 Poprzez 19) danego procesu.

Podstawowa składnia Renice następująco:

# Identyfikator priorytet [-n] [-gpu] 

W powyższym poleceniu ogólnym pierwszym argumentem jest wartość priorytetu, do której należy użyć, podczas gdy drugi argument można interpretować jako proces IDS (które jest ustawieniem domyślnym), identyfikatory grup procesowych, identyfikatorów użytkowników lub nazw użytkowników. Normalny użytkownik (inny niż root) może jedynie modyfikować priorytet planowania procesu, który jest właścicielem, a jedynie zwiększyć poziom uprzejmości (co oznacza pobieranie mniejszych zasobów systemowych).

Priorytet planowania procesu
2. Zabij (lub przerwać normalne wykonywanie) procesu w razie potrzeby:

Mówiąc dokładniej, zabicie procesu uprawnia wysyłanie mu sygnału do ukończenia wykonania z wdziękiem (SIGTERM = 15) lub natychmiast (Sigkill = 9) poprzez polecenia zabójstwa lub pkill.

Różnica między tymi dwoma narzędziami polega na tym, że ten pierwszy służy do całkowitego zakończenia określonego procesu lub grupy procesowej, podczas gdy drugi pozwala zrobić to samo w oparciu o nazwę i inne atrybuty.

Ponadto, Pkill jest pakowany z pgrep, co pokazuje PIDS, na które wpłynie to na użycie pkill. Na przykład przed uruchomieniem:

# pkill -u gacanepa 

Przydatne może być oglądanie na pierwszy rzut oka Pids posiadany przez Gacanepa:

# pgrep -l -U gacanepa 
Znajdź PIDS użytkownika

Domyślnie oba zabić I Pkill wysłać Sigterm sygnał do procesu. Jak wspomnialiśmy powyżej, ten sygnał można zignorować (podczas gdy proces kończy wykonanie lub na dobre), więc gdy poważnie musisz zatrzymać proces uruchamiania z ważnym powodem, musisz określić Sigkill sygnał w wierszu poleceń:

# Kill -9 Identyfikator # Zabij proces lub grupa procesowa # KILL -s Identyfikator sygnału # idem # pkill -s identyfikator sygnału # Zabij proces z nazwy lub innych atrybutów 

Wniosek

W tym artykule wyjaśniliśmy podstawy proces rozruchu w RHEL 7 i przeanalizował niektóre z dostępnych narzędzi, które pomogą w zarządzaniu procesami za pomocą wspólnych narzędzi i poleceń specyficznych dla systemu.

Zauważ, że ta lista nie ma na celu pokrycia wszystkich dzwonków i gwizdków tego tematu, więc możesz dodać własne preferowane narzędzia i polecenia do tego artykułu za pomocą poniższego formularza komentarza. Pytania i inne komentarze są również mile widziane.