Commit 7c9f2954 authored by Tom Lane's avatar Tom Lane

Give postmaster enough time to update the pidfile before checking to

see if it's been updated.  Skip the whole mess if we didn't see any
old pidfile.
parent af6e88a9
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.18 2001/02/08 19:39:24 petere Exp $ # $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.19 2001/03/18 20:27:11 tgl Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -293,9 +293,10 @@ if [ $op = "stop" -o $op = "restart" ];then ...@@ -293,9 +293,10 @@ if [ $op = "stop" -o $op = "restart" ];then
fi # stop or restart fi # stop or restart
if [ $op = "start" -o $op = "restart" ];then if [ $op = "start" -o $op = "restart" ];then
oldpid=""
if [ -f $PIDFILE ];then if [ -f $PIDFILE ];then
echo "$CMDNAME: It seems another postmaster is running. Trying to start postmaster anyway." 1>&2 echo "$CMDNAME: Another postmaster may be running. Trying to start postmaster anyway." 1>&2
pid=`sed -n 1p $PIDFILE` oldpid=`sed -n 1p $PIDFILE`
fi fi
unset logopt unset logopt
...@@ -330,13 +331,17 @@ if [ $op = "start" -o $op = "restart" ];then ...@@ -330,13 +331,17 @@ if [ $op = "start" -o $op = "restart" ];then
eval '$po_path' '$POSTOPTS' $logopt '&' eval '$po_path' '$POSTOPTS' $logopt '&'
# if had an old lockfile, check to see if we were able to start
if [ -n "$oldpid" ];then
sleep 1
if [ -f $PIDFILE ];then if [ -f $PIDFILE ];then
if [ "`sed -n 1p $PIDFILE`" = "$pid" ];then if [ "`sed -n 1p $PIDFILE`" = "$oldpid" ];then
echo "$CMDNAME: cannot start postmaster" 1>&2 echo "$CMDNAME: cannot start postmaster" 1>&2
echo "Examine the log output." 1>&2 echo "Examine the log output." 1>&2
exit 1 exit 1
fi fi
fi fi
fi
# wait for postmaster to start # wait for postmaster to start
if [ "$wait" = yes ];then if [ "$wait" = yes ];then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment