RHCSA Series Process Management w RHEL 7 BOOT, STLACKDOWN i wszystko pomiędzy - część 5
- 1923
- 338
- Tomasz Szatkowski
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 LinuxProszę 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 rozruchowego5. 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 przetwarzaniaW 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ć:
- praca narzędzie, które - w tych starszych systemach - było używane do zarządzania skryptami Sysvinit, i
- Narzędzie ChkConfig, które służyło aktualizacji i zapytania o informacje o usługach systemowych dla usług systemowych.
- 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 procesu2. 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 gacanepaZnajdź 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.
- « Jak hostować wiele terminali Linux do przeglądania i współpracy z Wemux
- Historia „init” i „systemd”, dlaczego „init” wymagał zastąpienia „systemd” w Linux »