summaryrefslogtreecommitdiffstats
path: root/scripts/kdekillall
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kdekillall')
-rwxr-xr-xscripts/kdekillall28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/kdekillall b/scripts/kdekillall
new file mode 100755
index 00000000..deb5aef5
--- /dev/null
+++ b/scripts/kdekillall
@@ -0,0 +1,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