From: "Christian Ullrich" <chris@chrullrich.net>
> OK, here is the first draft against current master. It builds on Windows
> with VS 2012 and on FreeBSD 10 with clang 3.3. I ran the regression
> tests on Windows, they all pass.
>
> The changed behavior is limited to Windows, where it now silently
> ignores Ctrl-C and Ctrl-Break when started via pg_ctl start.
>
> I don't think there is currently any support for switch-type long
> options, so rather than invent my own, I squeezed the two lines I added
> into postmaster.c where they fit best; unfortunately, the result is
> quite ugly. I'll be happy to refine that if someone can give me a hint
> on how to do it.
Overall, the patch seems good as it is based on the discussion. I found a
few problems:
(1)
The patch doesn't apply to HEAD. Could you rebase your patch?
patching file src/bin/pg_ctl/pg_ctl.c
Hunk #1 FAILED at 453.
1 out of 1 hunk FAILED -- saving rejects to file src/bin/pg_ctl/pg_ctl.c.rej
(2)
Although I haven't tried, doesn't pg_ctl start fail on non-Windows platforms
because of the following check?
! if (opt == '-')
! ereport(ERROR,
! (errcode(ERRCODE_SYNTAX_ERROR),
! errmsg("--%s requires a value",
! optarg)));
And, in the postgres reference page,
http://www.postgresql.org/docs/devel/static/app-postgres.html
there's a paragraph:
"The -- options will not work on FreeBSD or OpenBSD. Use -c instead. This is
a bug in the affected operating systems; a future release of PostgreSQL will
provide a workaround if this is not fixed."
Would --background work on FreeBSD and OpenBSD (i.e. would pg_ctl start
succeed)? I don't have access to those platforms.
(3)
--background will also be used by restart subcommand, won't it?
+ in a console window. It is used automatically by
+ <command>pg_ctl</command> when called with the
+ <option>start</option> subcommand.
Regards
MauMau