Detect postmaster being ready by calling psql -l rathern than
authorTatsuo Ishii
Tue, 14 Mar 2000 08:34:47 +0000 (08:34 +0000)
committerTatsuo Ishii
Tue, 14 Mar 2000 08:34:47 +0000 (08:34 +0000)
checking postmaster.pid. It's not enough to check the existence
of postmaster.pid since DB recovery might be running.

src/bin/pg_ctl/pg_ctl.sh

index 772b275fd9a30e25c684552e75d02bc93234308d..7cf1aa4702a1901ad4cef3b27f51e6815520f43e 100755 (executable)
@@ -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."