On Tue, Sep 7, 2010 at 10:47 PM, Dave Reisner <d@xxxxxxxxxxxxxx> wrote: > Instead of checking for the existance of a file in /var/run/daemons on > every iteration, handle the null case by setting nullglob. The shopt > call is done inside a subshell as to not bother the environment since we > may be going to runlevel 1 only temporarily. I thought about just enabling nullglobs and extglobs unconditionally in functions, but decided that was too likely to get objections no matter how unlikely breakage was. :) > --- > functions | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/functions b/functions > index b9ba718..7a0c4f8 100644 > --- a/functions > +++ b/functions > @@ -206,11 +206,13 @@ 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 > + ( > + shopt -s nullglob > for daemon in /var/run/daemons/*; do > - [[ -f $daemon ]] || continue > daemon=${daemon##*/} > in_array "$daemon" "${DAEMONS[@]}" || stop_daemon "$daemon" > done > + ) > > # Shutdown daemons in reverse order > for ((i=${#DAEMONS[@]}-1; i>=0; i--)); do > -- > 1.7.2.3 > >