Skip site navigation (1) Skip section navigation (2)

Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"})

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Mike Coleman <mkc(at)stowers-institute(dot)org>
Cc: pgsql-bugs(at)postgresql(dot)org, mkc(at)mathdogs(dot)com
Subject: Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"})
Date: 2002-07-19 13:49:43
Message-ID: 200207191349.g6JDni326744@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugs
Yes, I have seen this fix before.  Are people still using shells that
don't handle "$@" properly?  I guess so or you wouldn't have reported
it.

We only use "$@" in a few places so I am applying this patch.

---------------------------------------------------------------------------

Mike Coleman wrote:
> Your name		:	Mike Coleman
> Your email address	:	mkc(at)mathdogs(dot)com
> 
> 
> System Configuration
> ---------------------
>   Architecture (example: Intel Pentium)  	:alpha
> 
>   Operating System (example: Linux 2.0.26 ELF) 	:Tru64 5.1
> 
>   PostgreSQL version (example: PostgreSQL-7.2.1):   PostgreSQL-7.2.1
> 
>   Compiler used (example:  gcc 2.95.2)		:gcc 3.1
> 
> 
> Please enter a FULL description of your problem:
> ------------------------------------------------
> 
> The pg_ctl script uses the "$@" construct.  Newer shells will replace
> this with nothing if $@ is empty, but older shells will not.  The
> alternate form in the patch below will work for both new and old
> shells.
> 
> 
> Please describe a way to repeat the problem.   Please try to provide a
> concise reproducible example, if at all possible: 
> ----------------------------------------------------------------------
> 
> The problem occurs with this command, for example:
> 
> $ /usr/local/pgsql/bin/pg_ctl -D /data1/postgres-0 -l logfile start
> 
> 
> 
> 
> If you know how this problem might be fixed, list the solution below:
> ---------------------------------------------------------------------
> 
> 
> --- /usr/local/pgsql/bin/pg_ctl.dist    2002-07-18 11:34:25.000000000 -0500
> +++ /usr/local/pgsql/bin/pg_ctl 2002-07-18 14:44:35.000000000 -0500
> @@ -332,12 +332,12 @@
>      fi
> 
>      if [ -n "$logfile" ]; then
> -        "$po_path" "$@" </dev/null >>$logfile 2>&1 &
> +        "$po_path" ${1:+"$@"} </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 &
> +        "$po_path" ${1:+"$@"} </dev/null 2>&1 &
>      fi
> 
>      # if had an old lockfile, check to see if we were able to start
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

In response to

Responses

pgsql-bugs by date

Next:From: Stephan SzaboDate: 2002-07-19 13:53:55
Subject: Re: Bug #715: Too much memory consuming with postmaster
Previous:From: pgsql-bugsDate: 2002-07-19 12:27:15
Subject: Bug #716: No index usage for "WHERE a IN ( SELECT ...)"

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group