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.
This commit is contained in:
Tom Lane 2001-03-18 20:27:11 +00:00
parent af6e88a9cf
commit 7c9f29546c

View File

@ -8,7 +8,7 @@
#
#
# 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
fi # stop or restart
if [ $op = "start" -o $op = "restart" ];then
oldpid=""
if [ -f $PIDFILE ];then
echo "$CMDNAME: It seems another postmaster is running. Trying to start postmaster anyway." 1>&2
pid=`sed -n 1p $PIDFILE`
echo "$CMDNAME: Another postmaster may be running. Trying to start postmaster anyway." 1>&2
oldpid=`sed -n 1p $PIDFILE`
fi
unset logopt
@ -330,11 +331,15 @@ if [ $op = "start" -o $op = "restart" ];then
eval '$po_path' '$POSTOPTS' $logopt '&'
if [ -f $PIDFILE ];then
if [ "`sed -n 1p $PIDFILE`" = "$pid" ];then
echo "$CMDNAME: cannot start postmaster" 1>&2
echo "Examine the log output." 1>&2
exit 1
# 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 [ "`sed -n 1p $PIDFILE`" = "$oldpid" ];then
echo "$CMDNAME: cannot start postmaster" 1>&2
echo "Examine the log output." 1>&2
exit 1
fi
fi
fi