Linux Centos 6,64
Ich verwende den folgenden Befehl, um htop in der Befehlsspalte anzuzeigen
Befehl htop -u
Wie kann ich erreichen, dass nur ein bestimmter Befehl angezeigt wird, den ich aus der Liste der laufenden Befehle auswähle?
Danke
Antwort1
Im htop -u
Parameter steht ein Benutzername und kein Befehl.
Die einzige Möglichkeit, einen bestimmten Befehl zu überwachen, ist -p
, aber dazu ist eine PID erforderlich, sodass der Befehlsname zuerst in eine PID umgewandelt werden muss, was pidof
ausreicht.
Wenn mehr als eine Instanz eines Befehls ausgeführt wird, pidof
wird eine durch Leerzeichen getrennte Liste von PIDs zurückgegeben. Die -p
Option akzeptiert jedoch eine durch Kommas getrennte Liste, sodass die pidof
Ausgabe konvertiert werden muss:
htop -p $(pidof command | sed 's/ /,/g')
Dies lässt sich am besten in eine Funktion oder ein Skript integrieren. In diesem Fall lautet der Befehl:
htop -p $(pidof "$1" | sed 's/ /,/g')
sed
Obwohl ich zuerst an Stapelbearbeitung denke , tr
könnte in diesem Fall der einfachere Befehl verwendet werden:
htop -p $(pidof "$1" | tr ' ' ',')
Beachten Sie, dass GUI-Systemmonitore wie qps
und ksysguard
die Ausgabe filtern und bestimmte Befehle direkt anzeigen können (der textbasierte Filter kann jedoch auch den Befehlsnamen erfassen, wenn dieser zufällig in der Parameterliste eines anderen Befehls erscheint).