mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
Make sure that the postmaster options (from postmaster.opts[.default] or
-o option) are properly dequoted. Also, always pass an explicit -D option to postmaster, don't rely on it being set in postmaster.opts.
This commit is contained in:
parent
e6767a3205
commit
9ae6819038
@ -8,7 +8,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
# IDENTIFICATION
|
# IDENTIFICATION
|
||||||
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.19 2001/03/18 20:27:11 tgl Exp $
|
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.20 2001/04/21 11:23:58 petere Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -299,37 +299,33 @@ if [ $op = "start" -o $op = "restart" ];then
|
|||||||
oldpid=`sed -n 1p $PIDFILE`
|
oldpid=`sed -n 1p $PIDFILE`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unset logopt
|
|
||||||
if [ -n "$logfile" ]; then
|
|
||||||
logopt='</dev/null >>$logfile 2>&1'
|
|
||||||
else
|
|
||||||
# when starting without log file, redirect stderr to stdout, so
|
|
||||||
# pg_ctl can be invoked with >$logfile and still have pg_ctl's
|
|
||||||
# stderr on the terminal.
|
|
||||||
logopt='</dev/null 2>&1'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# no -o given
|
# no -o given
|
||||||
if [ -z "$POSTOPTS" ];then
|
if [ -z "$POSTOPTS" ];then
|
||||||
if [ $op = "start" ];then
|
if [ $op = "start" ];then
|
||||||
# if we are in start mode, then look for postmaster.opts.default
|
# if we are in start mode, then look for postmaster.opts.default
|
||||||
if [ -f $DEFPOSTOPTS ]; then
|
if [ -f $DEFPOSTOPTS ]; then
|
||||||
POSTOPTS=`cat $DEFPOSTOPTS`
|
eval set X "`cat $DEFPOSTOPTS`"; shift
|
||||||
fi
|
fi
|
||||||
POSTOPTS="-D $PGDATA $POSTOPTS"
|
|
||||||
else
|
else
|
||||||
# if we are in restart mode, then look for postmaster.opts
|
# if we are in restart mode, then look for postmaster.opts
|
||||||
set X `cat $POSTOPTSFILE`
|
eval set X "`cat $POSTOPTSFILE`"; shift
|
||||||
shift
|
|
||||||
po_path=$1
|
po_path=$1
|
||||||
shift
|
shift
|
||||||
POSTOPTS=$@
|
|
||||||
fi
|
fi
|
||||||
else # -o given
|
else # -o given
|
||||||
POSTOPTS="-D $PGDATA $POSTOPTS"
|
eval set X "$POSTOPTS"; shift
|
||||||
fi
|
fi
|
||||||
|
|
||||||
eval '$po_path' '$POSTOPTS' $logopt '&'
|
set X -D "$PGDATA" ${1+"$@"}; shift
|
||||||
|
|
||||||
|
if [ -n "$logfile" ]; then
|
||||||
|
"$po_path" "$@" </dev/null >>$logfile 2>&1 &
|
||||||
|
else
|
||||||
|
# when starting without log file, redirect stderr to stdout, so
|
||||||
|
# pg_ctl can be invoked with >$logfile and still have pg_ctl's
|
||||||
|
# stderr on the terminal.
|
||||||
|
"$po_path" "$@" </dev/null 2>&1 &
|
||||||
|
fi
|
||||||
|
|
||||||
# if had an old lockfile, check to see if we were able to start
|
# if had an old lockfile, check to see if we were able to start
|
||||||
if [ -n "$oldpid" ];then
|
if [ -n "$oldpid" ];then
|
||||||
|
Loading…
Reference in New Issue
Block a user