Prozesse interaktiv beenden

Datum: 2001-03-22
Quelle: suse-linux

Worum ging es?

Das folgende Fragment listet nacheinander alle laufenden Prozesse im System auf, die zu einem in $PROCESS definierten Muster passen (mit Ausnahme des eigenen Prozesses - das wird mit grep -v \`basename $0\` abgefangen) und fragt ab, ob sie terminiert werden sollen.

Code
for line in `ps ax | grep $PROCESS | grep -v \`basename $0\` |\
             grep -v grep | awk '{printf "%s:%s\n" $1, $5}'`; do
  proc_id=`echo $line | cut -f1 -d:`
  prog_name=`echo $line | cut -f2- -d:`
  echo -n "really kill process $prog_name?"
  read yn
  test "$yn" = "y" && kill -SIGTERM $proc_id
done
Beschreibung

Ich empfehle dringend, dies auf KEINEN FALL als Benutzer "root" auszuführen und sorgfältig zu testen, bevor der Code benutzt wird. Eine gute Variante zum Testen ist, das kill-Kommando nicht abzusetzen, sondern durch ein echo zu "entschärfen":
echo kill -SIGTERM $proc_id.