Der Befehl pkill sendet ein bestimmtes Signal oder standardmäßig das Beendigungssignal basierend auf einem übereinstimmenden Muster an Prozesse. Ähnlich wie der Befehl pgrep, sendet aber tatsächlich ein Signal, anstatt an stdout zu drucken. Wenn Sie beispielsweise top in einem Terminal starten und dann pkill top in einem anderen Terminal ausgeben, sehen Sie, dass top beendet wird. Der Befehl stimmte eher mit einem Namensmuster als mit einer Prozess-ID überein.
Syntax
Die Syntax dieses Befehls lautet:
# pkill [options] {pattern}
Die Befehle kill und pkill senden Signale an Prozesse, die sie zum Beenden anweisen. Jedes Signal hat eine Nummer, einen Namen und ein zugeordnetes Ereignis. Nachfolgend finden Sie einige der am häufigsten verwendeten Signale mit ihren Funktionen.
Nummer | Name | Beschreibung |
---|---|---|
1 | SIGHUP | Konfigurationsdatei neu laden |
2 | SIGNAL | Unterbrechen per Tastatur (ctrl+c) |
9 | SIGKILL | Prozess beenden |
15 | SIGTERM | Prozess sofort beenden. (Einen Prozess kontrolliert beenden, damit eine Bereinigung möglich ist) |
18 | SIGCONT | Mit STOP gestoppten Prozess fortsetzen |
19 | STOPP | Prozess stoppen |
pkill-Befehlsbeispiele
1. Beenden Sie alle Prozesse, die übereinstimmen:
# pkill "process_name"
2. Beenden Sie alle Prozesse, die mit ihrem vollständigen Befehl übereinstimmen, anstatt nur mit dem Prozessnamen:
# pkill -f "command_name"
3. Kill-Matching-Prozesse erzwingen (kann nicht blockiert werden):
# pkill -9 "process_name"
4. Senden Sie das SIGUSR1-Signal an Prozesse, die übereinstimmen:
# pkill -USR1 "process_name"
5. Beenden Sie den Hauptprozess „firefox“, um den Browser zu schließen:
# pkill --oldest "firefox"
6. Der Befehl pkill kann verwendet werden, um ein Signal an Prozesse zu senden, die von einem bestimmten steuernden Terminal aus laufen, wie in der folgenden Syntax gezeigt:
# pkill -t [terminal_name] -U UID [command_pattern]