it-swarm.com.de

So beenden Sie mehrere Prozesse

so ermitteln Sie die PID des zu tötenden Prozesses:

pgrep <process command>

Ich benutze dann den Befehl kill, um die von pgrep <process command> Zurückgegebene PID zu töten.

kill <PID>

Können diese Befehle zu einem kombiniert werden, um die von pgrep <process command> Zurückgegebenen PIDs oder PIDs zu löschen? Oder gibt es eine Methode, die mehrere Prozesse nach Befehlsnamen beendet?

So etwas wie: kill(pgrep <name of process>)

22
blue-sky

Sie können pkill verwenden:

pkill httpd

Möglicherweise möchten Sie auch die Prozessersetzung verwenden (obwohl dies nicht so klar ist):

kill $(pgrep command)

Und vielleicht möchten Sie xargs verwenden:

pgrep command | xargs kill
30
MatthewRock

Sie können auch killall verwenden, z.

killall firefox

SIGTERM an alle firefox Prozesse senden.

17
Byte Commander

Ja, Sie können eine Bash-Funktion verwenden und die Ausgabe durchlaufen.

$ for proc in $(pgrep <process command>); do kill $proc; done
9
lcipriani

Sie können mehrere Prozesse mit einem Array beenden. In diesem Fall können Sie Optionen wie $ip, $hostname Oder ähnliches angeben.

ip=your_ip_address; declare -a arr=$(ps aux|grep tail|grep $ip|awk '{print $2}'); for pid in ${arr[@]}; do kill -9 $pid; done;