Hintergrund
Ich habe einige Root-Prozesse, die ich zu beenden versuche, genauer gesagt einige tcpdump
Prozesse. Daher muss ich verwenden sudo kill
.
Mein aktueller Befehl sieht ungefähr so aus:
sudo kill $(ps aux | grep '[t]cpdump' | awk '{print $2}'
Frage
Irgendwelche Ideen zur Erweiterung des Befehls (einzeilig), um eine Ausgabe wie die folgende in eine Protokolldatei umzuleiten?
Im Erfolgsfall:
Erfolg! Abgebrochene Prozesse: pid1 pid2 ...
Im Falle eines Fehlers:
Error! Eine Fehlermeldung.
Eine einfache Umleitung reicht nicht aus, da der Befehl kill nicht die Prozesse ausgibt, die er beendet hat.
linux
command-line
sudo
kill
Illyes Istvan
quelle
quelle
Antworten:
Wenn killall bei Ihnen nicht funktioniert und Sie die vollständige Befehlszeile abgleichen müssen, wird immer
pgrep -f
+ bash + protokolliert (auch technisch in einer Zeile ...)Zuerst ein paar Zeilen
oder anstatt wenn's
Oder leiten Sie anstelle aller T-Stücke alle stdout um:
Natürlich, ohne die Protokollierung, müssen Sie nur im Grunde
pkill -f
oder sehr geringe Protokollierung von Erfolg / Misserfolg wie:quelle
Verwenden Sie
killall
.Wenn Sie weitere Diagnosen wünschen, überprüfen Sie den Rückkehrcode von
killall
.quelle
-r, --regexp
option, geht das nicht? @IllyesIstvan