Ich möchte einen Prozess über die Befehlszeile beenden, kann mich jedoch nicht an den Befehl zum Nachschlagen der Prozess-ID erinnern. Weiß es jemand?
quelle
Ich möchte einen Prozess über die Befehlszeile beenden, kann mich jedoch nicht an den Befehl zum Nachschlagen der Prozess-ID erinnern. Weiß es jemand?
Der Befehl zum Ermitteln der ID eines Prozesses (mit seinem Namen) lautet pidof
. Da Sie jedoch beabsichtigen, den Prozess abzubrechen, gibt es bessere / einfachere Möglichkeiten, als zuerst die pidof
PID zu finden:
Angenommen, der Prozess, den Sie beenden möchten, wird eindeutig durch seinen Namen identifiziert (oder Sie möchten alle Prozesse mit diesem Namen beenden), müssen Sie seine PID nicht kennen. Sie können einfach tun killall processname
.
Wenn es mehrere Prozesse mit demselben Namen gibt, Sie aber nur einen von ihnen pidof
beenden möchten, hilft Ihnen die Verwendung nicht viel, da Sie die Pids erhalten, aber keine Informationen erhalten, um zu bestimmen, welche der Prozesse Pids gehört zu dem Prozess, den Sie tatsächlich töten möchten.
In diesem Fall können Sie ps aux | grep processname
alle Prozesse mit dem angegebenen Namen sowie die Konsole, auf der sie ausgeführt werden (falls zutreffend) und die Argumente anzeigen, mit denen sie aufgerufen wurden. Auf diese Weise können Sie hoffentlich den gesuchten Prozess identifizieren .
Wenn der Prozess X-Fenster geöffnet hat, können Sie auch xkill
töten (aufrufen xkill
und dann auf das Fenster klicken).
Sie sollten einen Blick auf pgrep
und pkill
zwei sehr handlich und leistungsstark Dienstprogramme , die auf den meisten Linux und UNIX - Systemen zu finden sind.
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
Sie können ps -A
im Terminal ausgeführt werden, um alle Prozesse anzuzeigen (mit ihrer Prozess-ID), die derzeit ausgeführt werden.
grep
, um nach dem Namen eines bestimmten Prozesses zu suchen:ps -A | grep 'my name'
Ich hatte auch ein ähnliches Problem. Ich habe benutzt
pstree -p
; Dies zeigte mir die aktuell laufenden Prozesse einschließlich der Prozess-IDs.quelle
pidof
. Problemman pidof
für Details.quelle
Mein Favorit ist
pstree -p | grep $(program_name)
. Dies erfasst den Prozess tatsächlich, hebt ihn hervor und zeigt die PID in Klammern.Mein nächster Favorit (besonders wenn ich programmiere und alle Pids aus dem Prozess benötige) ist
pgrep -law ""
. Dies gibt Ihnen buchstäblich jede PID, die ausgeführt wird, gefolgt von der Anwendung (mit absolutem Pfad).Dies kann auf
pgrep -lw ""
für pid gefolgt vom Programmnamen oder auch nurpgrep -l
für alle pids reduziert werdenNatürlich können Sie nach einem bestimmten Programmnamen (oder einem Teil des Programmnamens) suchen. (dh
pgrep -lw firef
wird wahrscheinlich so etwas wie "4567 Firefox" anzeigen).quelle
pstree -psH $(pgrep prgram_name)
besser für den ersten Fall?Diese Antwort von @Ben auf eine doppelte Frage hat mein Problem gelöst:
Verwenden Sie den
top
Befehl im Terminal.via man top
quelle