summaryrefslogtreecommitdiffstats
path: root/scripts/kdekillall
blob: deb5aef5f9720441adfac6567b62c2535dbff0e3 (plain)
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
#! /bin/sh

case $1 in
    -*) signal=$1; shift;;
esac
if [ $# = 0 ]; then
    echo "Usage: $0 [-<signal>] <process>"
    echo 'Kills the process "kdeinit: <process> with signal <signal>"'
	echo "if <signal> is not specified, it defaults to SIGTERM,"
	echo "see kill -l for a list of possible signals"
else
    list=$(ps auwx | grep $USER | awk "/[k]deinit: $1/ {print \$2}")
    if test -z "$list"; then
        # on newer Linux kernels (>= 2.6.10) KDE is able to use 
        # prctl(PR_SET_NAME) to change the process name...
        list=$(ps auwx | grep $USER | awk "/\[kdeinit\] $1/ {print \$2}")
    fi
    if test -z "$list"; then
        # with KDE 3.4 we changed the view again...
        list=$(ps auwx | grep $USER | awk "/$1 \[kdeinit\]/ {print \$2}")
    fi
    if test -n "$list"; then 
        kill $signal $list
    else
        echo 'No process killed'
        exit 1
    fi
fi