Wie liste ich alle laufenden Instanzen einer ausführbaren Datei unter Linux auf?

471
Agnel Kurian

Gibt es eine Möglichkeit, die PIDs aller laufenden Instanzen einer ausführbaren Datei unter Linux abzurufen?

0
`pidof ` Ipor Sircer vor 5 Jahren 0
Ipor Sircer, können Sie dies als Antwort posten, damit ich sie annehmen kann? Agnel Kurian vor 5 Jahren 0

1 Antwort auf die Frage

3
michael

Dafür gibt es mehrere Möglichkeiten. Sie können alle Prozesse auflisten und diejenigen finden, die dem Namen der ausführbaren Datei entsprechen, an der Sie interessiert sind. Sie können auch alle laufenden Prozesse auflisten, die diese bestimmte ausführbare Datei geöffnet haben.

Zum Beispiel:

# list all processes, grep by filename $ ps -ef | grep firefox ...(lots of output, need to cut/filter)...  # more specific, e.g., maybe there's also /opt/bin/firefox $ ps -ef | grep /usr/lib/firefox/firefox .... 

(Hinweis: Im obigen Beispiel müssen Sie Folgendes hinzufügen, grep -v grepwenn Sie ein Skript erstellen. Fügen Sie dieses Beispiel einfach für eine grundlegende exploratorische Analyse hinzu.)

Beispiel für ein eingebautes Gerät, das (grundsätzlich) dasselbe tut:

$ pidof firefox 5915 5892 5851 5809 5753 5509  # more specific $ pidof /usr/lib/firefox/firefox 5915 5892 5851 5809 5753 5509 

Dies kann auch versehentlich verschiedene ausführbare Dateien mit demselben Namen auflisten, daher ist Vorsicht geboten. Aber es hat eine wirklich schöne, knappe Ausgabe, die sich hervorragend für das Scripting eignet.

Schließlich ist es eine ziemlich robuste Option, offene Dateien aufzulisten ( lsof ) und die entsprechenden Prozesse zu finden, die sie öffnen (eine ausführbare Datei ist während des Betriebs "zum Lesen geöffnet"):

# note: sudo not always necessary, but might be $ lsof /usr/lib/firefox/firefox ...