Re: pg_ctl idempotent option - Mailing list pgsql-hackers

From Josh Berkus
Subject Re: pg_ctl idempotent option
Date
Msg-id 51075BD3.3000201@agliodbs.com
Whole thread Raw
In response to Re: pg_ctl idempotent option  (Bruce Momjian <bruce@momjian.us>)
Responses Re: pg_ctl idempotent option
Re: pg_ctl idempotent option
List pgsql-hackers
> OK, I had some time to think about this.  Basically, we have three
> outcomes for pg_ctl start:
> 
>     server not running and pg_ctl start success
>     server start failed
>     server already running
> 
> Can't we just assign different return values to these cases, e.g. 0, 1,
> 2?  We already print output telling the user what happened.

Not sure if that would work.  Too many admin scripts only check for
error output, and not what the error code was.

FWIW, the Solaris/Opensolaris service scripts, as well as the RH service
scripts (I think), already handle things this way.  If you say:

svcadm enable postgresql

... and postgres is already up, it just returns 0.  So it's a common
pattern.

So, alternate suggestions to "idempotent":

--isup
--isrunning
--ignorerunning

However, I'm really beginnging to think that a switch isn't correct, and
what we need to do is to have a different pg_ctl *command*, e.g.:

pg_ctl -D . on
or
pg_ctl -D . enable

> I don't think I like --force because it isn't clear if we are forcing
> the start to have done something, or forcing the server to be running.

Agfeed.


-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com



pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: autovacuum not prioritising for-wraparound tables
Next
From: Peter Eisentraut
Date:
Subject: Re: psql \l to accept patterns