Enhance pg_ctl so that it prints error messages from postmaster
authorTatsuo Ishii
Mon, 27 Mar 2000 02:12:03 +0000 (02:12 +0000)
committerTatsuo Ishii
Mon, 27 Mar 2000 02:12:03 +0000 (02:12 +0000)
if it fails to start up it (this is only vaild if -w is given).

src/bin/pg_ctl/pg_ctl.sh

index 7cf1aa4702a1901ad4cef3b27f51e6815520f43e..ca9b0e6d95535818c7326cd41e4b582adecb220f 100755 (executable)
@@ -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