summaryrefslogtreecommitdiff
path: root/functions
diff options
context:
space:
mode:
authorGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2011-05-18 23:32:36 +0200
committerTom Gundersen <teg@jklm.no>2011-05-19 14:33:35 +0200
commite0e1420a3506a5988b8f76139788f0ffea298e0c (patch)
treed5a6541f7c167da7d87d84220ddc17cab3a721da /functions
parentb6e17433c8838acdc48ccfe726325118792a171e (diff)
add killall5 omit pid functionality
(me) Update the offsets so can be merged now without any issues and respect the indentation. Implements FS#10536 - [initscripts] internal: save a pid from killall5 All credits to: Kurt J. Bosch Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Signed-off-by: Tom Gundersen <teg@jklm.no>
Diffstat (limited to 'functions')
-rw-r--r--functions16
1 files changed, 14 insertions, 2 deletions
diff --git a/functions b/functions
index fd0928e..6d279cc 100644
--- a/functions
+++ b/functions
@@ -222,6 +222,14 @@ ck_status() {
fi
}
+# PIDs to be omitted by killall5
+declare -a omit_pids
+
+add_omit_pids() {
+ omit_pids+=( $@ )
+}
+
+
kill_everything() {
# $1 = where we are being called from.
# This is used to determine which hooks to run.
@@ -241,12 +249,16 @@ kill_everything() {
# Terminate all processes
stat_busy "Sending SIGTERM To Processes"
run_hook "$1_prekillall"
- /sbin/killall5 -15 &> /dev/null
+ local pid k5args=""
+ for pid in ${omit_pids[@]}; do
+ k5args+=" -o $pid"
+ done
+ /sbin/killall5 -15 $k5args &> /dev/null
/bin/sleep 5
stat_done
stat_busy "Sending SIGKILL To Processes"
- /sbin/killall5 -9 &> /dev/null
+ /sbin/killall5 -9 $k5args &> /dev/null
/bin/sleep 1
stat_done