Detect postmaster being ready by calling psql -l rathern than

checking postmaster.pid. It's not enough to check the existence
of postmaster.pid since DB recovery might be running.
This commit is contained in:
Tatsuo Ishii 2000-03-14 08:34:47 +00:00
parent 6217a8c7ba
commit 44a9639123
1 changed files with 6 additions and 5 deletions

View File

@ -8,7 +8,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.9 2000/02/07 04:31:10 ishii Exp $
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.10 2000/03/14 08:34:47 ishii Exp $
#
#-------------------------------------------------------------------------
CMDNAME=`basename $0`
@ -47,7 +47,7 @@ else
fi
# Check if needed programs actually exist in path
for prog in postmaster
for prog in postmaster psql
do
if [ ! -x "$PGPATH/$prog" ]
then
@ -245,7 +245,10 @@ if [ $op = "start" -o $op = "restart" ];then
$ECHO_N "Waiting for postmaster starting up.."$ECHO_C
while :
do
if [ ! -f $PIDFILE ];then
if psql -l >/dev/null 2>&1
then
break;
else
$ECHO_N "."$ECHO_C
cnt=`expr $cnt + 1`
if [ $cnt -gt 60 ];then
@ -253,8 +256,6 @@ if [ $op = "start" -o $op = "restart" ];then
exit 1
fi
sleep 1
else
break
fi
done
$ECHO "done."