-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathslay.sysv
executable file
·61 lines (57 loc) · 998 Bytes
/
slay.sysv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/sh
#
# In csh
#
# alias psg 'ps aux | sed -n -e "/sed -n -e /d\\
# /\!$/p\\
# /TIME COMMAND/p"'
#
#(change 'ps aux' to 'ps -ef' for sysV.)
#
# Converting to a ksh or sh function is left as an exercise for the
# reader ...
#
# To kill I use this script which I picked this up from the net some
# time back.
#
# slay : kill processes by names
#
# Do our best to locate the PIDs to kill from the give
# process names.
#
# @(#) slay.sysv:1.1 1/22/96 00:00:00
#
MYNAME=`basename $0`
Ask=yes
case $1 in
"")
echo "Usage: $MYNAME process_name ..."
exit 1 ;;
-n)
Ask=no; shift ;;
esac
# change 'ps aux' to 'ps -ef' for sysV.
PSAUX=`ps -ef`
for pname
do
line= PID=
PID=`echo "$PSAUX" |
grep -i $pname |
awk '!/grep|'$MYNAME'/ {print $2}'`
for pid in $PID
do
if [ $Ask = yes ]
then
line=`echo "$PSAUX" | awk '$2 == '$pid' {print}'`
echo -n "Kill ($line)? "
read reply
case $reply in
[Yy]*) kill -9 $pid
;;
esac
else
kill -9 $pid
fi
done
done
exit