Linux pkill Befehl für Anfänger (5 Beispiele)

Wenn Sie unter Linux einen Prozess (aus welchem Grund auch immer) über die Befehlszeile beenden müssen, können Sie den Befehl kill verwenden, bei dem Sie die ID des Prozesses, den Sie beenden möchten, als Eingabe übergeben müssen. Aber wusstest du, dass es auch eine Möglichkeit gibt, Prozesse zu beenden, ohne ihre PIDs anzugeben?

Ja, es gibt ein Tool – genannt pkill – mit dem du das machen kannst. In diesem Artikel werden wir die Grundlagen dieses Befehls anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einer Ubuntu 18.04 LTS Maschine getestet wurden.

Linux pkill Befehl

Der Befehl pkill unter Linux ist im Grunde genommen ein einfacherer Weg, um Prozesse zu beenden. Folgendes ist seine Syntax:

pkill [options] pattern

Und hier ist, was die Man Page über dieses Tool sagt:

pkill - signal processes based on name and other attributes

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine immer bessere Vorstellung davon vermitteln sollen, wie der pkill-Befehl funktioniert.

Q1. Wie verwendet man den pkill-Befehl?

Die grundlegende Verwendung ist ziemlich einfach – alles, was Sie tun müssen, ist, ‚pkill‘ mit Prozessnamen als Eingabe auszuführen.

Wenn du zum Beispiel versuchst, den ‚gedit‘-Prozess zu beenden, kannst du das mit pkill auf folgende Weise tun:

pkill gedit

Das ist es. Das ist es. Du wirst sehen, dass der gedit-Prozess (falls er läuft) bei der Ausführung des oben genannten Befehls beendet wird.

Q2. Wie kann man erreichen, dass pkill ein anderes Signal sendet?

Wie bereits am Anfang dieses Artikels erwähnt, sendet der Befehl pkill grundsätzlich ein Signal an den Prozess. Standardmäßig wird das SIGTERM-Signal gesendet, aber wenn Sie möchten, können Sie das Signal mit der Befehlszeilenoption –signal ändern.

Zum Beispiel:

pkill --signal SIGKILL gedit

Q3. Wie kann man Prozesse auf Basis der vollständigen Befehlszeile beenden?

Standardmäßig wird der Eingangsname (Muster) mit dem Prozessnamen verglichen. Wenn du jedoch willst, kannst du pkill stattdessen dazu bringen, die komplette Befehlszeile abzugleichen. Dies kann mit der Kommandozeilenoption -f erfolgen.

Nehmen wir zum Beispiel an, es laufen zwei Ping-Befehle auf meinem System. Nachfolgend ein Auszug aus der Befehlsausgabe von ps:

...
himanshu  4304  4296  0 10:03 pts/3    00:00:00 ping google.com
himanshu  4315  4306  0 10:03 pts/4    00:00:00 ping howtoforge.com
...

Angenommen, die Anforderung besteht darin, den Befehl’ping google.com‘ nur mit pkill zu beenden.

Wenn du pkill auf die folgende Weise verwendest:

pkill ping

dann werden beide Befehle beendet. Um das zu vermeiden, können wir die Kommandozeilenoption -f verwenden. Hier ist, wie es verwendet werden kann:

pkill -f "ping google.com"

Wenn also der oben genannte Befehl ausgeführt wurde, wurde nur der als Eingabe genannte Befehl beendet.

Q4. Wie macht man Pkill Case unempfindlich?

Standardmäßig ist der Befehl pkill case sensitive, d.h. er behandelt Namen in Groß- und Kleinschreibung unterschiedlich. Wenn du willst, kannst du jedoch erzwingen, dass pkill Groß-/Kleinschreibung nicht beachtet wird, was du mit der Kommandozeilenoption -i tun kannst.

pkill -i [process-name]

Q5. Wie kann man erreichen, dass syslog seine Konfigurationsdatei mit pkill erneut liest?

Du kannst den Befehl pkill wie folgt verwenden, um dies zu erreichen:

pkill -HUP syslogd

Fazit

pkill ist also ein äußerst nützlicher Befehl, wenn es darum geht, Prozesse zu beenden. Wir haben bereits einige der Kommandozeilenoptionen besprochen, die dieser Befehl bietet. Sobald du damit fertig bist, diese zu üben, kannst du mehr über den Befehl erfahren, indem du zu seiner Manpage gehst.

Das könnte dich auch interessieren …