Jak znaleźć listę procesów demon i procesy zombie w Linuksie

A+ A-

Ten artykuł poprowadzi Cię zrozumieć proces zombie i demonów, a także pomoże nam znaleźć sposób, który jest uruchomiony w tle.

Czym jest proces zombie?

Gdy proces zakończy wykonanie, to będzie mieć status wyjścia, aby zgłosić się do procesu głównego. Z powodu, że trochę informacji, proces będzie pozostawał w tabeli procesu OS jako proces zombie, co oznacza, że ​​nie mogą być planowane dla przyszłych, ale proces ten nie może być całkowicie usunięty lub identyfikator procesu nie będą stosowane do zjazd została określona i nie są już potrzebne.

Kiedy dziecko kończy proces, proces mistrz otrzyma sygnał SIGCHLD, aby wskazać, że jednym z jego proces potomny zakończył wykonującego; proces nadrzędny zazwyczaj nazywamy wait () stan systemu w tym momencie. Status ten zapewni rodzicom ze stanem wyjściowym procesu dziecka i spowoduje, że proces potomny należy odnieść lub usunięty z tabeli procesowego.

Demony?

Linux jest systemem operacyjnym wielozadaniowym. Każdy program działa w dowolnym momencie jest nazywany procesem. Każda komenda działa rozpoczyna się od co najmniej jednego nowego procesu i istnieje wiele numery procesów systemowych, które są uruchomione.

Każdy proces jest identyfikowany przez numer ID zwanego procesu (PID). Podobny do plików, każdy proces ma swojego właściciela i grupę, a grupa i uprawnienia właściciela są przydatne do identyfikacji, które pliki i urządzeń związanych z tymi procesami. Większość procesów mają również własnego procesu rodzica, który je rozpoczął.

Przykład: Skorupa jest procesem, a wszelkie polecenia wykonywane w powłoce jest procesem, który należy do procesu macierzystego powłoki. Wyjątkiem jest specjalny proces zwany init (8), który to pierwszy proces rozpocząć się na czas startu i który ma PID (identyfikator procesu) z 1.

Niektóre programy mają być uruchamiane z ciągłego wprowadzania danych przez użytkownika i odłączony od terminalu. Na przykład, serwer WWW odpowiada na żądania internetowych, zamiast wprowadzania danych przez użytkownika. Serwery pocztowe są kolejne przykłady tego typu aplikacji. Tego typu programów jest również znany jako Procesom.

Procesy pierwszego planu

Każdy proces ma zacząć działać w planie. Robi swoje wejście z klawiatury i wysyła swoje wyjście do ekranu po zakończeniu procesu.

Widać to się stało z poleceniem ls. Gdybym chciał wymienić wszystkie pliki w moim bieżącym katalogu, można użyć następującego polecenia -

To pokaże wszystkie pliki w bieżącym katalogu.

 # ls
lost + found user1 użytkownik2 

Proces przebiega w planie i będzie przekierować do mojego ekranu, a jeśli komenda chce żadnych danych, że czeka na dane.

Podczas gdy program jest uruchomiony w pierwszym planie i biorąc tyle czasu, nie możemy uruchamiać żadnych innych poleceń z wiersza poleceń, które mogą być dostępne aż program zakończy przetwarzanie.

Procesy w tle

Proces przebiega w tle bez interakcji z użytkownikami. Jeśli proces tła wymaga żadnego wkładu, to czeka.

Zaletą prowadzenia procesu w tle jest to, że można uruchomić inne polecenia, a ty nie powinni czekać, aż zakończy się rozpocząć kolejny proces.

Najprostszym sposobem, aby rozpocząć proces tła jest dodanie znaku & (&) na końcu polecenia możemy wykonać.

 # odnaleźć . /> Pliki 

Powyższy zapisze dane wyjściowe do pliku Pliki z wszystkich plików i katalogów, które będą miały więcej czasu. Tak więc, na przykład, ampersand (&) na końcu linii będzie działać w tle jako proces, a kursor będzie pochodzić z pytaniem czeka na kolejny rozkaz.

 # Find ./> Pliki &
[1] 76742
# 

Pierwszy wiersz zawiera informacje na temat procesu w tle o ile proces w tle są uruchomione i numer zadania lub procesu ID. Musimy wiedzieć PID manipulowania go między tłem i planie.

Po naciśnięciu Enter teraz możemy zobaczyć następujący wynik

 [1] + Done znaleźć. /> Pliki 

Pierwsza linia mówi, że proces polecenia Znajdź tle zakończy się pomyślnie i czeka na innego polecenia.

Nieruchomość uruchomionych procesów

Polecenie to notować własne procesy, uruchamiając polecenie ps (stan procesu).

 # ps
 PID TTY CZAS CMD
 69301 pkt / 0 00:00:00 bash
 78926 pkt / 0 00:00:00 ps 

Powszechnie stosowane flagi dla PS jest -f, będzie -f wyświetla pełną informację, która zawiera więcej informacji, jak pokazano poniżej.

 # Ps -f
UID PID TTY PPID C stime CZAS CMD
Korzeń 69301 69261 0 13:34 pkt / 0 00:00:00 -bash
Korzeń 79099 69301 0 13:51 pkt / 0 00:00:00 ps -f 

Pełna Użycie polecenia ps

 # Ps --help
********* ********* ********* Prosta selekcja selekcja listy *********
-A Wszystkie procesy -C wg nazwy poleceń
-N Wybór Negate -G od rzeczywistego identyfikatora grupy (obsługuje nazwy)
-a wszystko w / tty poza liderami sesji -U od rzeczywistego identyfikatora użytkownika (obsługuje nazwy)
-d wszystkie poza liderami sesji -g przez sesji bądź efektywnej nazwy grupy
-e wszystkie procesy -p według ID procesu
                                      -q przez ID procesu (bez sortowania i szybki)
T wszystkie procesy dotyczące procesów tego terminala -s podane w sesjach
a Wszystkie w / tty, łącznie z innymi użytkownikami -t przez tty
g PRZESTARZAŁE - Nie używaj -u przez efektywnego identyfikatora użytkownika (obsługuje nazwy)
r procesy U procesów dla określonych użytkowników tylko działa
x procesy w / o kontrolowaniu ttys T od tty
*********** Format ********** *********** *********** długie opcje
-o, o zdefiniowane przez użytkownika -f pełne --group --user --pid --cols --ppid
-j sygnał j kontrola zadań s --group --user --sid --rows --info
-O, O preinstalowanym -ov pamięci wirtualnej --cumulative --format --deselect
-l, l dawno u zorientowanego na użytkownika --sort --tty --forest version
-F Dodatkowe rejestry pełne X --heading --no-nagłówka --context
                                      --quick-PID
                    ********* ********* Różne opcje
-V, V pokaż wersję lista L f kody formatu ASCII Art lasu
-m, m, l, -T, H gwinty S dzieci w sumie -y zmienić format -l
-M, Bezpieczeństwo danych Z c prawdziwa nazwa polecenia -c klasy planowania
-w, w szerokie wyjście n WCHAN numeryczna, UID -H Hierarchia procesów

Zatrzymywanie procesów

Sposób można przerwać na kilka sposobów. Często z linii poleceń, wysyłając klawiszy CTRL + C - będzie zakończyć polecenie. To działa, gdy proces jest uruchomiony na pierwszym planie.

Jeśli proces jest uruchomiony w tle, to najpierw trzeba by uzyskać jego identyfikator zadania za pomocą polecenia ps, a potem można użyć polecenia kill zabić proces w następujący sposób -

 # Ps -f
UID PID TTY PPID C stime CZAS CMD
Korzeń 69301 69261 0 13:34 pkt / 0 00:00:00 -bash
korzeniowe 82913 69301 0 13:58 pkt / 0 00:00:00 ssh root@192.168.1.89~~number=plural
Korzeń 82952 69301 0 13:58 pkt / 0 00:00:00 ps -f

 # Kill 82913
Zakończony 

Tutaj zabić polecenie by zakończyć root@192.168.1.89~~dobj ssh. Jeśli proces ignoruje regularny zabić, możemy skorzystać z kill -9 następuje identyfikator procesu w sposób następujący.

 # Ps -f
UID PID TTY PPID C stime CZAS CMD
Korzeń 69301 69261 0 13:34 pkt / 0 00:00:00 -bash
Korzeń 83964 69301 0 14:00 pkt / 0 00:00:00 ps -f
[1] + Zabite root@192.168.1.89 ssh 

Jak możemy zobaczyć, czy istnieją procesy zombie uruchomione w systemie.

Run "ps aux" i szukać Z w kolumnie STAT.

 # Ps -aux
Ostrzeżenie: zła składnia, być może fałszywy "-"? Zobacz /usr/share/doc/procps-3.2.8/FAQ
USER PID% CPU% MEM VSZ RSS TTY STAT CZAS START POLECENIE
Korzeń 11647 0,0 0,1 549100 7348? S Mar18 00:13 / usr / libexec / clock-applet --oaf aktywować-iid = OAFIID: GNOME_ClockApplet_Factory --oaf-IOR-fd = 28
Korzeń 11648 0,0 0,1 400744 5552? S Mar18 00:00 / usr / libexec / gdm-user-switch-applet --oaf aktywować-iid = OAFIID: GNOME_FastUserSwitchApplet_Factry --oaf-IOR-fd = 34
Korzeń 11649 0,0 0,1 290996 4072? S Mar18 00:00 / usr / libexec / notification-obszarowe aplet --oaf aktywować-iid = OAFIID: GNOME_NotificationAreaApplet_Factory --oaf-IOR-fd = 40
Korzeń 11681 0,0 0,0 137416 1524? S Mar18 00:00 / usr / libexec / gvfsd-burn --spawner: 1,9 / org / gtk / gvfs / exec_spaw /
Korzeń 11696 0,0 0,0 135276 1320? S Mar18 00:00 / usr / libexec / gvfsd-metadane
Korzeń 12196 0,0 0,0 0 0? Z Mar18 00:20 [yumBackend.py] <Nieistniejący
Korzeń 13284 0,0 0,1 303428 6212? Sl Mar18 00:00 gnome-terminal
Korzeń 13286 0,0 0,0 8228 620? S Mar18 00:00 gnome-PTY-Helpe
Korzeń 13287 0,0 0,0 108340 1340 pkt / 0 SS + Mar18 0:00 bas
Korzeń 14347 0,0 0,0 223336 3408? S 10:50 00:00 smbd -D
Korzeń 14578 0,0 0,4 425524 18172? Ss Mar25 00:21 / usr / bin / HTTP
apache 15091 0,0 1,5 414648 61904? S Apr05 00:44 php-fpm: basen WW
postfix 18359 0,0 0,0 80948 3384? S 12:24 00:00 pickup -l -t FIFO -u 

W powyższym przykładzie, proces o numerze ID procesu 12196 jest posiadanie statusu z, należy użyć polecenia kill zabić ten proces

 #kill -9 12196 

Po tym artykule jesteś w stanie zrozumieć, czym jest proces zombie i demony i jak się dowiedzieć i jak go zatrzymać, a także jak uczynić proces w tle.