Unter Linux wird eine Instanz eines ausgeführten Dienstes, einer Anwendung oder eines Skripts als Prozess bezeichnet. Wenn Sie einen Befehl, ein Programm oder eine Anwendung ausführen, wird ein Prozess dafür erstellt. Jeder Prozess hat seine eigene Prozess-ID, die einem bestimmten Benutzer und einer bestimmten Gruppe zugeordnet ist. Wenn Prozesse zu viele Ressourcen verbrauchen oder nicht mehr reagieren, müssen Sie sie möglicherweise beenden. In diesem Fall können Sie den Prozess mit dem Befehl kill stoppen, ohne Ihren Server neu zu starten.
In diesem Beitrag zeigen wir Ihnen, wie Sie laufende Prozesse unter Linux beenden.
Voraussetzungen
- Ein Server, auf dem Linux auf der Atlantic.Net Cloud Platform ausgeführt wird
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie ein beliebiges Linux-Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Ausgeführte Prozesse unter Linux anzeigen
Der einfachste und einfachste Weg, eine Liste aller laufenden Prozesse zu erhalten, ist die Verwendung des Befehls top. Sie können den obersten Befehl wie unten gezeigt ausführen, um alle laufenden Prozesse aufzulisten:
top
Sie erhalten alle laufenden Prozesse in der folgenden Ausgabe:
Tasks: 344 total, 1 running, 297 sleeping, 0 stopped, 0 zombie %Cpu(s): 22.6 us, 6.0 sy, 0.1 ni, 67.1 id, 3.9 wa, 0.0 hi, 0.4 si, 0.0 st KiB Mem : 7580260 total, 2103076 free, 3174408 used, 2302776 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 3901388 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5994 vyom 20 0 44344 4160 3444 R 11.8 0.1 0:00.03 top 2206 vyom 20 0 1046476 89792 60368 S 5.9 1.2 1:15.26 Xorg 2359 vyom 20 0 3471324 216412 97596 S 5.9 2.9 1:58.27 gnome-shell 2745 vyom 20 0 1776552 136144 99424 S 5.9 1.8 1:09.93 skypeforlinux 2775 vyom 20 0 37.371g 169524 117660 S 5.9 2.2 1:05.09 skypeforlinux 5655 root 20 0 0 0 0 I 5.9 0.0 0:00.30 kworker/u8:3-ev 1 root 20 0 160356 9464 6632 S 0.0 0.1 0:03.50 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kb 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 10 root 20 0 0 0 0 S 0.0 0.0 0:00.40 ksoftirqd/0 11 root 20 0 0 0 0 I 0.0 0.0 0:03.58 rcu_sched 12 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 13 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 16 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/1
Sie können k drücken und die Prozess-ID eingeben, um den Prozess direkt von der oberen Benutzeroberfläche aus zu beenden.
Finden Sie den Prozess mit dem Befehl ps
ps ist ein Befehlszeilendienstprogramm, das eine vollständige Liste der laufenden Prozesse im angegebenen Format anzeigt.
Die grundlegende Syntax des Befehls ps ist unten dargestellt:
ps [OPTION]
Nachfolgend finden Sie eine kurze Erläuterung der einzelnen Optionen:
- -a – Laufende Prozesse aller Benutzer anzeigen.
- -u – Zeigt detaillierte Informationen zu jedem der Prozesse an.
- -x – Prozesse anzeigen, die vom Daemon gesteuert werden.
Führen Sie beispielsweise den folgenden Befehl aus, um eine detaillierte Prozessliste aller Prozesse zu erhalten.
ps aux
Sie erhalten die folgende Ausgabe:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.1 160356 9464 ? Ss 15:51 0:03 /sbin/init splash root 2 0.0 0.0 0 0 ? S 15:51 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 15:51 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 15:51 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 15:51 0:00 [kworker/0:0H-kb] root 9 0.0 0.0 0 0 ? I< 15:51 0:00 [mm_percpu_wq] root 10 0.0 0.0 0 0 ? S 15:51 0:00 [ksoftirqd/0] root 11 0.1 0.0 0 0 ? I 15:51 0:03 [rcu_sched] root 12 0.0 0.0 0 0 ? S 15:51 0:00 [migration/0] root 13 0.0 0.0 0 0 ? S 15:51 0:00 [idle_inject/0] root 14 0.0 0.0 0 0 ? S 15:51 0:00 [cpuhp/0] root 15 0.0 0.0 0 0 ? S 15:51 0:00 [cpuhp/1] root 16 0.0 0.0 0 0 ? S 15:51 0:00 [idle_inject/1] root 17 0.0 0.0 0 0 ? S 15:51 0:00 [migration/1] root 18 0.0 0.0 0 0 ? S 15:51 0:00 [ksoftirqd/1] root 20 0.0 0.0 0 0 ? I< 15:51 0:00 [kworker/1:0H-kb] root 21 0.0 0.0 0 0 ? S 15:51 0:00 [kdevtmpfs] root 22 0.0 0.0 0 0 ? I< 15:51 0:00 [netns]
Der obige Befehl zeigt Ihnen alle laufenden Prozesse. Sie können den grep-Befehl mit dem ps-Befehl verwenden, um eine PID eines bestimmten Prozesses zu erhalten.
Um beispielsweise eine PID eines Apache-Prozesses abzurufen, führen Sie den folgenden Befehl aus:
ps aux | grep apache
Sie erhalten die folgende Ausgabe:
root 1309 0.0 0.0 73992 4748 ? Ss 15:52 0:00 /usr/sbin/apache2 -k start www-data 1310 0.0 0.0 1285068 4620 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start www-data 1311 0.0 0.0 1285068 4644 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start
Sie können auch das pidof verwenden Befehl, um eine PID eines bestimmten Prozesses zu erhalten.
pidof apache2
Sie erhalten die folgende Ausgabe:
1311 1310 1309
Einen Prozess unter Linux beenden
An diesem Punkt wissen Sie, wie Sie die PID eines beliebigen Prozesses erhalten. Jetzt können Sie den Kill-Befehl verwenden, um einen laufenden Prozess zu beenden.
Führen Sie den folgenden Befehl aus, um einen einzelnen Prozess zu beenden:
kill PID
Oder
kill -9 PID
Führen Sie den folgenden Befehl aus, um mehrere Prozesse zu beenden:
kill -9 PID1 PID2 PID3
Sie können die Prozesse auch anhand ihres Namens beenden. Sie können das pkill verwenden Befehl, einen Prozess anhand seines Namens zu beenden.
Führen Sie den folgenden Befehl aus, um den Apache-Prozess zu beenden:
pkill apache2
Sie können auch den Killall verwenden Befehl, um einen Prozess anhand seines Namens zu beenden:
killall mysqld
Schlussfolgerung
In diesem Beitrag haben wir erklärt, wie man einen Prozess in Linux findet und beendet. Sie können jetzt alle nicht reagierenden Prozesse selbst beenden, ohne Ihren Server neu zu starten. Probieren Sie es auf VPS-Hosting von Atlantic.Net aus!