On 2012/11/26 21:40, Luiz Capitulino wrote: > On Mon, 26 Nov 2012 20:49:17 +0900 > Tomoki Sekiyama <tomoki.sekiyama...@hitachi.com> wrote: > >> On 2012/11/23 1:03, Luiz Capitulino wrote: >>> On Thu, 22 Nov 2012 11:15:49 +0900 >>> Tomoki Sekiyama <tomoki.sekiyama...@hitachi.com> wrote: >>> >>>> Adds sample hook scripts for --fsfreeze-hook option of qemu-ga. >>>> - fsfreeze-hook : execute scripts in fsfreeze-hook.d/ >>>> - fsfreeze-hook.d.sample/mysql-flush.sh : quiesce MySQL before snapshot >> <snip> >>>> +# Iterate executables in directory "fsfreeze-hook.d" with the specified >>>> args >>>> +[ ! -d "$FSFREEZE_D" ] && exit 1 >>>> +for file in "$FSFREEZE_D"/* ; do >>>> + is_ignored_file "$file" && continue >>>> + [ -x "$file" ] || continue >>>> + echo "$(date): execute $file $@" >>$LOGFILE >>>> + "$file" "$@" >>$LOGFILE 2>&1 >>>> + STATUS=$? >>>> + echo "$(date): $file finished with status=$STATUS" >>$LOGFILE >>>> +done >>> >>> execute_fsfreeze_hook() will fail the freeze process if this script fails. >>> Two >>> comments: >>> >>> 1. Do we want to fail the freeze process if one of the sub-scripts fails? >>> If yes, then we have to exit 1 in the first failure >> >> I originally thought the hooks are optional; even they failed, >> filesystem-level >> consistency are still kept in the snapshot. >> However, if we are going to fail fsfreeze process by one of sub-scripts' >> failure, we also need to notify scripts which already succeeded to pre-freeze >> to thaw (or abort) freezing, before exit 1 here. > > Right, which makes things more complex. I vote for doing it the simpler way > for now then, which is to ignore subscripts exit status. But then you should > add exit 0 after the loop to avoid this:
I agree this way. >>> 2. The exit status of the script will echo's exit status. I doubt we want >>> that >> >> Do you mean $STATUS (not $status) is specialized in some shell environments? > > No, what I meant is that (afaik) when the script finishes, its return status > to > qemu-ga is actually going to be the latest call echo exit status because it's > the last command executed in the loop. If echo fails (say no space) then > the script will fail. > > We either, ignore any failures in qemu-ga itself (although we should at least > print a warning there) and/or add exit 0 as the last line of the script. Now I got the point. I will fix this at the next version. Thanks, -- Tomoki Sekiyama <tomoki.sekiyama...@hitachi.com> Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory