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
InhaltSIGHUP | 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 | |