[arch-general] [PATCH 21/48] Both rc.single and rc.shutdown use the same code to kill everything.
Kurt J. Bosch
kjb-temp-2009 at alpenjodel.de
Wed Sep 1 06:41:04 EDT 2010
2010-08-31 13:16, Dave Reisner:
> On Tue, Aug 31, 2010 at 10:07:52AM +0200, Kurt J. Bosch wrote:
>> --snip--
>>
>> I suggest:
>>
>> From b202be97f8dc1c0c68aaea792d4457c674c673f3 Mon Sep 17 00:00:00 2001
>> From: Kurt J. Bosch<kjb-temp-2009 at 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" "${DAEMONS[@]}" || 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
>>
>
> Parsing the output of ls will never be better than using shell globbing
> no matter how much simpler it might make the code appear to be. Not only
> are you avoiding a fork, but the shell glob will properly handle any odd
> characters thrown into the mix. You'll see breakage on something as
> simple as a space in your suggestion. While I'm inclined to believe that
> there will never be a space in the name of a daemon in Arch, if we're
> going for pure Bash in this rewrite, let's use Bash instead of
> mindlessly forking.
>
NAK. The patch just reverts breaking of the current behaviour which is
shutdown daemons in reverse order of start. AFAIK bash globbing is
unable to sort on timestamps, right? p
More information about the arch-general
mailing list