Ein Prozess mit name = example kann von beendet werden
Killall -9 Beispiel
Wie kann ich mehrere Instanzen des folgenden Befehls beenden, die Leerzeichen enthalten?
"valgrind --tool = lackey ./testcases/kernel/syscalls/waitpid/waitpid03"
Der folgende Befehl gibt valgrind --tool = lackey ./testcases/kernel/syscalls/waitpid/waitpid03 zurück: Keine solche Datei oder kein solches Verzeichnis
killall -9 "valgrind --tool = lackey ./testcases/kernel/syscalls/waitpid/waitpid03"
-9
ist ein letzter Ausweg. Sie sollten verwenden-SIGTERM
,-SIGINT
oder-SIGQUIT
der Anwendung zuerst eine Chance zu geben Bereinigung zu tun und anmutig zu verlassen.Antworten:
killall valgrind
beendet allevalgrind
Prozesse unabhängig von Argumenten. Wenn Sie nur Prozesse beenden möchten, deren Befehlszeile genau istvalgrind --tool=lackey ./testcases/kernel/syscalls/waitpid/waitpid03
, können Sie Folgendes verwendenpkill
:Wie
killall
,pkill
ist auf jeder nicht eingebetteten (und einigen eingebetteten) Linux-Installationen, und es ist leistungsfähiger und oft zuverlässiger (aber aus irgendeinem Grund weniger bekannt). Das Companion-Dienstprogrammpgrep
ist identisch, außer dass es die PIDs auflistet, anstatt sie zu töten.Ein weiteres Dienstprogramm, an dem Sie interessiert sein könnten, ist
fuser
:fuser testcases/kernel/syscalls/waitpid/waitpid03
Listet die Prozesse auf, bei denen die angegebene Datei geöffnet ist, undfuser -k
sendet ein Signal an diese Prozesse. Wenn Sie nicht versuchen, ein Signal zu senden,lsof
ist dies eine leistungsstärkere Alternative zufuser
(zeigt mehr Material, hat mehr Filter).quelle
-fx
um "genau mit der Kommandozeile übereinzustimmen".Sie müssen nicht
killall
die vollständige Befehlszeile angeben.killall valgrind
wäre in deinem Fall ausreichend.quelle
Neben den anderen guten Lösungen können Sie htop jederzeit installieren und dann beenden, was Sie möchten, indem Sie durch die Liste der ausgeführten Prozesse scrollen und die Taste F9 (kill) verwenden. Ok, es ist kein hartgesottenes Kommandozeilen-Zeug, aber es funktioniert!
quelle
killall valgrind
funktioniert normalerweise nicht, da die eigentliche ausführbare Datei von valgrind einen anderen Namen hat. Dieser Name ist memcheck-amd64-linux oder ähnlich, abhängig davon, welches Valgrind-Tool Sie verwenden. Was ps als Prozessnamen meldet, ist jedoch nicht der ausführbare Name, sondern der erste Eintrag in der Befehlszeile. Dies führt zu Verwirrung. Ich habe dies psmisc gemeldet: https://github.com/acg/psmisc/issues/1quelle