Ability to kill processes of many users

This commit is contained in:
Yann Esposito (Yogsototh) 2011-10-02 18:54:07 +02:00
parent 9824873526
commit f311b1f3f2

View file

@ -6,9 +6,8 @@ function logexit {
exit 1 exit 1
} }
(($#<1)) && logexit "Usage: ${0:t} user" (($#<1)) && logexit "Usage: ${0:t} user [user ...]"
victim="$1"
function stopquestion() { function stopquestion() {
print -n -- "$* (y/n): " print -n -- "$* (y/n): "
@ -19,15 +18,18 @@ function stopquestion() {
esac esac
} }
local processlist
for victim in $@; do
case $victim in case $victim in
$USER) stopquestion "Are you sure to kill your own processes?";; $USER) stopquestion "Are you sure to kill your own processes?";;
init|root) stopquestion "Are you sure to kill all '$victim' processes?";; init|root) stopquestion "Are you sure to kill all '$victim' processes?";;
} esac
processlist=( $(ps aux | awk '$1 == "'$victim'" {print $2}') ) processlist=( $processlist $(ps aux | awk '$1 == "'$victim'" {print $2}') )
print -l -- $processlist
(($#processlist == 0)) && logexit "The user '$victim' doesn't run any process" (($#processlist == 0)) && logexit "The user '$victim' doesn't run any process"
done
sudo kill -9 $processlist sudo kill -9 $processlist