From 990bd6b505a964b0338bd9c7df9ba12b33837bbd Mon Sep 17 00:00:00 2001 From: Kurt J. Bosch Date: Fri, 27 Aug 2010 01:05:54 +0200 Subject: [PATCH] Add killall5 omit pid functionality --- functions | 10 +++++++++- rc.shutdown | 8 ++++++-- rc.single | 8 ++++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/functions b/functions index 672eed2..0c39d9b 100644 --- a/functions +++ b/functions @@ -218,7 +218,15 @@ ck_status() { status_started else status_stopped - fi + fi +} + +# PIDs to be omitted by killall5 + +declare -a omit_pids + +add_omit_pids() { + omit_pids+=( $@ ) } ############################### diff --git a/rc.shutdown b/rc.shutdown index 4eb29cc..31f08c1 100755 --- a/rc.shutdown +++ b/rc.shutdown @@ -44,12 +44,16 @@ done # Terminate all processes stat_busy "Sending SIGTERM To Processes" run_hook shutdown_prekillall -/sbin/killall5 -15 &> /dev/null +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 diff --git a/rc.single b/rc.single index f986a2a..832ff99 100755 --- a/rc.single +++ b/rc.single @@ -30,12 +30,16 @@ if [ "$PREVLEVEL" != "N" ]; then # Terminate all processes stat_busy "Sending SIGTERM To Processes" run_hook single_prekillall - /sbin/killall5 -15 &> /dev/null + 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.0.3