Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Prozessmanagement unter Linux – Einführung in ps, pstree und andere Befehle

Prozessmanagement unter Linux – Einführung in ps, pstree und andere Befehle

齐天大圣
齐天大圣Original
2020-10-10 12:33:342667Durchsuche

Prozess ist, wie der Name schon sagt, ein laufendes Programm. Jeder Prozess hat eine eindeutige Prozess-ID, und wir verwalten Prozesse über diese ID.

ps

Um den Ausführungsstatus jedes Programms zu überprüfen, verwenden Sie den Befehl ps. Hier sprechen wir über die Konzepte des übergeordneten Prozesses und des untergeordneten Prozesses. Untergeordnete Prozesse werden von übergeordneten Prozessen abgeleitet und als verwaiste Prozesse bezeichnet.

Sehen Sie sich den Prozessstatus der aktuellen Bash-Umgebung an:

# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 43530 43528  0  80   0 - 28886 do_wai pts/0    00:00:00 bash
0 R     0 43552 43530  0  80   0 - 38336 -      pts/0    00:00:00 ps

Hier stellt UID die Benutzer-ID dar, PID stellt die ID des übergeordneten Prozesses dar.

# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
……
root         2  0.0  0.0      0     0 ?        S    Sep29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep29   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Sep29   0:00 [kworker/0:0H]
……

Sie können Zeigen Sie den gesamten Prozessstatus über ps aux an, die ID des übergeordneten Prozesses wird jedoch nicht aufgeführt. Wir können ps -lA oder ps -ef verwenden, um alle Prozesse anzuzeigen und die ID des übergeordneten Prozesses anzuzeigen Untergeordnete Prozesse können nicht auf einen Blick klar sein. Wir können pstree verwenden, um alle Prozesse als Prozessbaum aufzulisten.

[root@localhost ~]# ps -lA
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 47844 ep_pol ?        00:00:04 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:02 ksoftirqd/0

Sie können auch die Anzahl der Prozesse für einen bestimmten Prozess anzeigen.

# pstree -up
systemd(1)─┬─BT-Panel(5462)───{BT-Panel}(5469)
           ├─BT-Task(5361)─┬─{BT-Task}(5375)
           │               ├─{BT-Task}(5376)
           │               ├─{BT-Task}(5377)
           │               ├─{BT-Task}(5381)
           │               ├─{BT-Task}(5382)
           │               └─{BT-Task}(5390)
……

pidof

Zeigen Sie die Prozess-ID-Nummer anhand des Prozessnamens an. Wenn ich beispielsweise die MySQL-Prozess-ID wissen möchte, kann ich sie mit dem Befehl pidof überprüfen.

# pstree -p 5389 -up
mysqld(5389,mysql)─┬─{mysqld}(5414)
                   ├─{mysqld}(5415)
                   ├─{mysqld}(5416)
……

Beachten Sie, dass es möglicherweise mehrere identische Prozessnamen auf dem Server gibt, sodass mehr als eine Prozess-ID über pidof gefunden wird.

# pidof mysqld
5389

kill, killall

Für die Prozessverwaltung verwenden wir die Prozess-ID PID und ein Signal verwaltet werden.

CodenameName

Inhalt

12 19Der Unterschied zwischen kill und killall besteht darin, dass kill den Prozess über die Prozess-ID verwaltet, während killall Prozessname zum Verwalten des Prozesses.
# pidof php-fpm
42609 41610 41588 ……
SIGHUP Das Starten eines beendeten Programms ermöglicht es dem PID, seine eigene Konfigurationsdatei erneut zu lesen, ähnlich wie beim Neustart von
SIGINT ist entspricht der Eingabe von [Strg] -c über die Tastatur, um ein Programm zu unterbrechen und zu beenden. Da es sich um eine normale Beendigung handelt, wird sie durch nachfolgende Aktionen abgeschlossen. Dieses Signal ist auch der Standardwert. Wenn kein Signal hinzugefügt wird, wird dieser Wert verwendet.
SIGSTOP entspricht der Verwendung der Tastatur zur Eingabe von [Strg]-Z, um ein Programm anzuhalten

Das obige ist der detaillierte Inhalt vonProzessmanagement unter Linux – Einführung in ps, pstree und andere Befehle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn