Merge bk-internal.mysql.com:/home/bk/mysql-5.1-build
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build
This commit is contained in:
commit
19afc9d9e7
@ -150,24 +150,47 @@ parse_manager_arguments() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wait_for_pid () {
|
wait_for_pid () {
|
||||||
|
verb="$1"
|
||||||
|
manager_pid="$2" # process ID of the program operating on the pid-file
|
||||||
i=0
|
i=0
|
||||||
|
avoid_race_condition="by checking again"
|
||||||
while test $i -ne $service_startup_timeout ; do
|
while test $i -ne $service_startup_timeout ; do
|
||||||
sleep 1
|
|
||||||
case "$1" in
|
case "$verb" in
|
||||||
'created')
|
'created')
|
||||||
|
# wait for a PID-file to pop into existence.
|
||||||
test -s $pid_file && i='' && break
|
test -s $pid_file && i='' && break
|
||||||
kill -0 $2 || break # if the program goes away, stop waiting
|
|
||||||
;;
|
;;
|
||||||
'removed')
|
'removed')
|
||||||
|
# wait for this PID-file to disappear
|
||||||
test ! -s $pid_file && i='' && break
|
test ! -s $pid_file && i='' && break
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "wait_for_pid () usage: wait_for_pid created|removed"
|
echo "wait_for_pid () usage: wait_for_pid created|removed manager_pid"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# if manager isn't running, then pid-file will never be updated
|
||||||
|
if test -n "$manager_pid"; then
|
||||||
|
if kill -0 "$manager_pid" 2>/dev/null; then
|
||||||
|
: # the manager still runs
|
||||||
|
else
|
||||||
|
# The manager may have exited between the last pid-file check and now.
|
||||||
|
if test -n "$avoid_race_condition"; then
|
||||||
|
avoid_race_condition=""
|
||||||
|
continue # Check again.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# there's nothing that will affect the file.
|
||||||
|
log_failure_msg "Manager of pid-file quit without updating file."
|
||||||
|
return 1 # not waiting any more.
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo $echo_n ".$echo_c"
|
echo $echo_n ".$echo_c"
|
||||||
i=`expr $i + 1`
|
i=`expr $i + 1`
|
||||||
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$i" ; then
|
if test -z "$i" ; then
|
||||||
@ -338,7 +361,7 @@ case "$mode" in
|
|||||||
echo $echo_n "Shutting down MySQL"
|
echo $echo_n "Shutting down MySQL"
|
||||||
kill $mysqlmanager_pid
|
kill $mysqlmanager_pid
|
||||||
# mysqlmanager should remove the pid_file when it exits, so wait for it.
|
# mysqlmanager should remove the pid_file when it exits, so wait for it.
|
||||||
wait_for_pid removed; return_value=$?
|
wait_for_pid removed "$mysqlmanager_pid"; return_value=$?
|
||||||
|
|
||||||
# delete lock for RedHat / SuSE
|
# delete lock for RedHat / SuSE
|
||||||
if test -f $lock_dir
|
if test -f $lock_dir
|
||||||
|
Loading…
x
Reference in New Issue
Block a user