Datum: 2001-03-22
Quelle: suse-linux
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.
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
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.