Angenommen, ich möchte jeden Prozess beenden, der das Wort Amarok enthält. Ich kann die Befehle ausdrucken, die ich ausführen möchte. Aber wie kann ich die Shell dazu bringen, sie auszuführen? dh.
ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031
shell
command-line
kill
PuercoPop
quelle
quelle
| sh -x
nach dem Rest der Befehlszeile?kill -9
für einen Prozess verwenden, siehe [Prozessmanagement] [1] [1]: mywiki.wooledge.org/… ...amarokx
Prozess beenden? Ich pkill vi, es tötet,supervisorctl
was "vi" im Wort enthält.-9
ist ziemlich wenig hilfreich - gibt es bessere Informationen darüber, warum Menschen ihn nicht verwenden sollten? Es heißt nur "nicht und feuere Leute, die es benutzen"; Aber alles, was ich jemals anderswo gesehen habe,kill -9 {pid}
ist, wie man etwas tötet ...Antworten:
Von
man 1 pkill
Was bedeutet zum Beispiel, wenn wir diese Zeilen in sehen
ps aux
:Wir können sie alle mit der
-f
Option pkill töten :quelle
-9
am Ende hinzufügen !httpdx
Prozess beenden? Ich pkill vi, es tötet,supervisorctl
was "vi" im Wort enthält.-i
, wiepkill -fi wine
. Verwenden Sie zur Überprüfung vor und nachps uax | grep -i wine
.xargs (1): xargs - Konstruieren Sie Argumentlisten und führen Sie das Dienstprogramm aus. Hilfreich , wenn Sie wollen Rohr in Argumenten zu so etwas wie
kill
oderls
oder so weiter.quelle
ps aux | grep -ie amarok | grep -v grep | awk '{print $2}' | xargs kill -9
(grep -v
steht fürgrep --invert
)verwenden
pgrep
quelle
pkill -9 amarok
kill -9 $(pgrep -f amarok)
Der sichere Weg, dies zu tun, ist:
quelle
-l
Flagge hinzugefügt . Ich habe eigentlich nur einen Alias erstelltpkill
,pkill -fl
damit ich so etwas ausführen kann,pkill jboss
und es wird den Prozess ausspucken, den es gerade getötet hat.amarokx
Prozess beenden? Ich pkill vi, es tötet,supervisorctl
was "vi" im Wort enthält.pkill: invalid option -- 'l'
- pkill von procps-ng 3.3.12Ich denke, dieser Befehl killall ist genau das, was Sie brauchen. Der Befehl wird als "Prozesse nach Namen beenden" beschrieben. Er ist einfach zu verwenden. Zum Beispiel
Dieser Befehl beendet den gesamten Prozess von Chrome. Hier ist ein Link zum Befehl killall
http://linux.about.com/library/cmd/blcmdl1_killall.htm
Hoffe, dieser Befehl könnte Ihnen helfen.
quelle
ps aux
die Ausgabe der Suchepkill -x stimmt genau mit dem Prozessnamen überein.
pkill -f ist ähnlich, erlaubt jedoch ein Muster für reguläre Ausdrücke.
Beachten Sie, dass pkill ohne andere Parameter (z. B. -x, -f) teilweise Übereinstimmungen mit Prozessnamen zulässt. "Pkill Amarok" würde also Amarok, Amarok Banana, Bananaamarok usw. töten.
Ich wünschte, -x wäre das Standardverhalten!
quelle
amarokx
Prozess beenden? Ich pkill vi, es tötet,supervisorctl
was "vi" im Wort enthält.Wenn Sie die Ausgabe eines Befehls ausführen möchten, können Sie ihn einfügen.
$(...)
Schauen Sie sich jedoch für Ihre spezifische Aufgabe die Befehlekillall
und anpkill
.quelle
Sie können Ihre Ausgabe auch als Unterprozess bewerten, indem Sie alles mit Back Ticks umgeben oder in $ () einfügen:
quelle
versuche kill -s 9
ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'
Um Prozesse vom 11. November zu töten oder töte -s 9ps -ef |grep amarok|grep -v grep | awk '{print $2}'
Um Prozesse zu töten, die das Wort Amarok enthaltenquelle
Vielleicht die Befehle zur ausführbaren Datei hinzufügen, die Berechtigung + x setzen und dann ausführen?
quelle
Wenn Sie Cygwin oder eine minimale Shell verwenden, die fehlt
killall
können Sie einfach dieses Skript verwenden:killall.sh - Töte nach Prozessnamen.
Verwendungszweck:
quelle
kill: invalid argument f