提交 7c9f2954 编写于 作者: T 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.
上级 af6e88a9
......@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册