[arch-projects] [RFC] [PATCH] [initscripts] Add killall5 omit pid functionality.

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Mon May 16 22:22:57 EDT 2011


(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 at yahoo.com.ar>
---
 functions |   16 ++++++++++++++--
 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
 
-- 
1.7.5.1



More information about the arch-projects mailing list