2010-07-02 11:27, Thomas Bächler:
First of all, sorry for not continuing the review yesterday, time is
short :(

Still, I'll finish this, as I'd like to have this applied eventually.

Am 02.07.2010 11:21, schrieb Kurt J. Bosch:
Am 2010-06-30 23:47, schrieb Victor Lowther:
Move that shared code into functions.
+    run_hook single_prekillall

This line should be  run_hook "${0##*/rc.}"_prekillall  IMHO

Kurt is right here. We call this code from rc.single and rc.shutdown I
think. We use two distinct hooks, you can register functions for these
hooks independently!


Hmm, git bashification-redux has now:

kill_everything() {
    # $1 = where we are being called from.
    # This is used to determine which hooks to run.
    # Find daemons NOT in the DAEMONS array. Shut these down first
    for daemon in /var/run/daemons/*; do
        [[ -f $daemon ]] || continue
        daemon=${daemon##*/}
        in_array "$daemon" "${daemo...@]}" || stop_daemon "$daemon"
    done

    # Shutdown daemons in reverse order
    for ((i=${#daemo...@]}-1; i>=0; i--)); do
        [[ ${DAEMONS[$i]:0:1} = '!' ]] && continue
        ck_daemon ${daemons[$...@} || stop_daemon ${daemons[$...@}
    done

        # Terminate all processes
    stat_busy "Sending SIGTERM To Processes"
    run_hook "$1_prekillall"
    /sbin/killall5 -15 &> /dev/null
    /bin/sleep 5
    stat_done

    stat_busy "Sending SIGKILL To Processes"
    /sbin/killall5 -9 &> /dev/null
    /bin/sleep 1
    stat_done

    run_hook "$1_postkillall"
}

I suggest:

From b202be97f8dc1c0c68aaea792d4457c674c673f3 Mon Sep 17 00:00:00 2001
From: Kurt J. Bosch <kjb-temp-2...@alpenjodel.de>
Date: Tue, 31 Aug 2010 09:57:47 +0200
Subject: [PATCH 17/17] Correct behaviour of kill_everything()

---
 functions |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/functions b/functions
index b9ba718..3ca7324 100644
--- a/functions
+++ b/functions
@@ -205,10 +205,9 @@ ck_status() {
 kill_everything() {
     # $1 = where we are being called from.
     # This is used to determine which hooks to run.
-    # Find daemons NOT in the DAEMONS array. Shut these down first
-    for daemon in /var/run/daemons/*; do
-        [[ -f $daemon ]] || continue
-        daemon=${daemon##*/}
+    # Find daemons NOT in the DAEMONS array.
+    # Shut these down first in reverse order.
+    for daemon in $( /bin/ls -t /var/run/daemons ); do
        in_array "$daemon" "${daemo...@]}" || stop_daemon "$daemon"
     done

@@ -220,7 +219,7 @@ kill_everything() {

        # Terminate all processes
     stat_busy "Sending SIGTERM To Processes"
-    run_hook "$1_prekillall"
+    run_hook "${1}_prekillall"
     /sbin/killall5 -15 &> /dev/null
     /bin/sleep 5
     stat_done
@@ -230,7 +229,7 @@ kill_everything() {
     /bin/sleep 1
     stat_done

-    run_hook "$1_postkillall"
+    run_hook "${1}_postkillall"
 }

 activate_vgs() {
--
1.7.0.3

Reply via email to