summaryrefslogtreecommitdiffstats
path: root/scripts/kdekillall
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitbd9e6617827818fd043452c08c606f07b78014a0 (patch)
tree425bb4c3168f9c02f10150f235d2cb998dcc6108 /scripts/kdekillall
downloadtdesdk-bd9e6617827818fd043452c08c606f07b78014a0.tar.gz
tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
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