Linux pidof Command Tutorial für Anfänger (5 Beispiele)
Die Linux-Kommandozeile bietet eine Vielzahl von Dienstprogrammen, die mit Prozessen arbeiten. Sobald ein solches Tool pidof ist, erhalten Sie – wie der Name schon sagt – die Prozess-ID eines bereits ausgeführten Prozesses. In diesem Tutorial werden wir die Grundlagen von pidof anhand einiger leicht verständlicher Beispiele diskutieren.
Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einem Ubuntu 16.04 LTS-Rechner getestet wurden.
Linux-Befehl pidof
Wie bereits oben erwähnt, können Sie mit dem Befehl pidof die Prozess-ID eines laufenden Programms finden. Die Syntax ist wie folgt:
pidof [options] command
Und hier ist, was die Man Page über das Tool sagt:
Pidof finds the process id's (pids) of the named programs. It prints those id's on the standard output. This program is on some systems used in run-level change scripts, especially when the system has a System-V like rc structure. In that case these scripts are located in /etc/rc?.d, where ? is the runlevel. If the system has a start-stop- daemon (8) program that should be used instead.
Nachfolgend finden Sie einige Beispiele im Stil von Fragen und Antworten, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie das Tool funktioniert.
Q1. Wie benutzt man den pidof-Befehl?
Die grundlegende Verwendung ist ziemlich einfach – man muss nur den Namen des Programms als Eingabe an den Befehl übergeben. Zum Beispiel:
pidof gedit
So können Sie die Prozess-ID des Befehls, der gedit erzeugt hat, in der Ausgabe sehen.
Q2. Wie kann man erreichen, dass pidof nur eine Pid zurückgibt?
Manchmal werden Sie sehen, dass der Befehl pidof mehrere Pids zurückgibt. Versuchen Sie zum Beispiel, den Befehl pidof mit einem Webbrowser-Programm als Eingabe auszuführen.
pidof firefox
Nachfolgend finden Sie die auf meinem System erzeugte Ausgabe:
Falls Sie jedoch wünschen, können Sie das Werkzeug zwingen, nur eine einzige PID in der Ausgabe zu erzeugen. Dies kann mit der Befehlszeilenoption -s geschehen.
pidof -s firefox
Q3. Wie kann man die Ausgabe basierend auf dem Stammverzeichnis begrenzen?
Wenn Sie möchten, dass pidof nur Prozess-IDs zurückgibt, die mit demselben Stammverzeichnis laufen, verwenden Sie die Befehlszeilenoption -c.
pidof -c program_name
Bitte beachten Sie, dass diese Option für Nicht-Root-Benutzer ignoriert wird, da sie das aktuelle Root-Verzeichnis von Prozessen, die
ihnen nicht gehören, nicht überprüfen können.
Q4. Wie benutzt man pidof im Falle von Binärdateien, die auf Netzwerk-Dateisystemen gehalten werden?
Beim Umgang mit Binärdateien, die sich auf netzwerkbasierten Dateisystemen wie NFS befinden, können Sie die Befehlszeilenoption -n verwenden, damit pidof nicht den Funktionsaufruf stat system verwendet.
pidof -n program_name
Bitte beachten Sie, dass die Man Page vorschlägt, „statt diese Option zu verwenden, kann die Variable PIDOF_NETFS gesetzt und exportiert werden“.
Q5. Wie funktioniert pidof intern?
Offizielle Dokumente sagen, dass pidof eigentlich dasselbe Programm wie killall ist. Das Programm verhält sich entsprechend dem Namen, unter dem es aufgerufen wird. Das steht genau in der Man Page:
When pidof is invoked with a full pathname to the program it should find the pid of, it is reasonably safe. Otherwise it is possible that it returns pids of running programs that happen to have the same name as the program you're after but are actually other programs. Note that that the executable name of running processes is calculated with read? link(2), so symbolic links to executables will also match.
Schlussfolgerung
Der Befehl pidof kann in vielen Situationen nützlich sein. Wenn Sie beispielsweise einen Prozess töten möchten, dessen PID Sie nicht kennen, können Sie mit diesem Tool schnell die Prozess-ID finden und der Prozess kann innerhalb kürzester Zeit beendet werden. Der pidof-Befehl bietet nicht viele Optionen, und wir haben die meisten davon hier bereits diskutiert. Weitere Informationen finden Sie auf der Man Page des Tools.