diff --git a/src/bin/pg_ctl/pg_ctl.sh b/src/bin/pg_ctl/pg_ctl.sh
index 7cf1aa4702a1901ad4cef3b27f51e6815520f43e..ca9b0e6d95535818c7326cd41e4b582adecb220f 100755
--- a/src/bin/pg_ctl/pg_ctl.sh
+++ b/src/bin/pg_ctl/pg_ctl.sh
@@ -8,10 +8,12 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.10 2000/03/14 08:34:47 ishii Exp $
+#    $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.11 2000/03/27 02:12:03 ishii Exp $
 #
 #-------------------------------------------------------------------------
 CMDNAME=`basename $0`
+tmp=/tmp/tmp$$
+trap "rm -f $tmp; exit" 0 1 2 13 15
 
 # Check for echo -n vs echo \c
 
@@ -219,17 +221,17 @@ if [ $op = "start" -o $op = "restart" ];then
 	if [ $op = "start" ];then
 	    # if we are in start mode, then look for postmaster.opts.default
 	    if [ -f $DEFPOSTOPTS ];then
-		eval "$po_path `cat $DEFPOSTOPTS`" &
+		eval "$po_path `cat $DEFPOSTOPTS`" >$tmp 2>&1&
 	    else
 		$ECHO "$CMDNAME: Can't find $DEFPOSTOPTS"
 		exit 1
 	    fi
 	else
 	    # if we are in restart mode, then look postmaster.opts
-	    eval `cat $POSTOPTSFILE` &
+	    eval `cat $POSTOPTSFILE` >$tmp 2>&1 &
 	fi
     else
-	eval "$po_path $POSTOPTS "&
+	eval "$po_path $POSTOPTS " >$tmp 2>&1&
     fi
 
     if [ -f $PIDFILE ];then
@@ -253,6 +255,11 @@ if [ $op = "start" -o $op = "restart" ];then
 		cnt=`expr $cnt + 1`
 		if [ $cnt -gt 60 ];then
 		    $ECHO "$CMDNAME: postmaster does not start up"
+		    if [ -r $tmp ];then
+			$ECHO "$CMDNAME: messages from postmaster:"
+			$ECHO
+			cat $tmp
+		    fi
 		    exit 1
 		fi
 		sleep 1