Speaking of legacy code with bad default behaviors: pg_ctl.  The current
utility is designed to fathfully reproduce the rather hackish shell
script we originally had for postgres startup.   This results in a
couple of unintuitive defaults which give sysadmins and config
management developers headaches:

a) by default, it returns to the caller without waiting for postgres to
actually start/stop/restart.  In this mode, it also always returns
success regardless of result.

b) by default, it remains attached to the caller's tty for stdout and
stderr, even after it has switched to the regular postgres log.

Yes, one can work around both of these with -w and -l, but the only
reason those are non-default settings is that's the way the 7.X era
shell script behaved.  So at this point we're preserving unintuitive
default behavior in order to be backwards compatible with a 1999-era
shell script.

I don't know if the answer is to rename the utility like we're
discussing with pg_dump/pg_backup, or something else.

Josh Berkus
PostgreSQL Experts Inc.

Sent via pgsql-hackers mailing list (
To make changes to your subscription:

Reply via email to