First commit

This commit is contained in:
Yann Esposito (Yogsototh) 2011-09-30 20:21:15 +02:00
commit dbc413595a
3 changed files with 37 additions and 0 deletions

5
README.md Normal file
View file

@ -0,0 +1,5 @@
# Assassinate
A shell utility used to kill all processes of some user.
Warn you if you try to kill some special user (init or root).

32
assassinate Executable file
View file

@ -0,0 +1,32 @@
#!/usr/bin/env zsh
# kill all other processes
function logexit {
print -P -- "$*" >&2
exit 1
}
(($#<1)) && logexit "Usage: ${0:t} user"
victim="$1"
function stopquestion() {
print -n -- "$* (y/n): "
read answer
case $answer in
y|Y) print -- "OK you've been warned!";;
*) exit 0 ;;
esac
}
case $victim in
$USER) stopquestion "Are you sure to kill you own processes?";;
init|root) stopquestion "Are you sure to kill all '$victim' processes?";;
}
exit 0
processlist=( $(ps aux | awk '{print $1" "$2}' | egrep '(krystelle|bastien|anna|jc)' | awk '{print $2}') )
(($#processlist == 0)) && logexit "No process for user $victim"
sudo kill -9 $processlist

BIN
man/man1/assassinate.1.gz Normal file

Binary file not shown.