On Wed, Mar 23, 2022 at 7:25 AM Michael Paquier <mich...@paquier.xyz> wrote: > > On Tue, Mar 15, 2022 at 03:44:39PM -0700, Nathan Bossart wrote: > > A simple approach could be to just set log_min_messages to PANIC before > > exiting. I've attached a patch for this. With this patch, we'll still see > > a FATAL if we try to use 'postgres -C' for a runtime-computed GUC on a > > running server, and there will be no extra output as long as the user sets > > log_min_messages to INFO or higher (i.e., not a DEBUG* value). For > > comparison, 'postgres -C' for a non-runtime-computed GUC does not emit > > extra output as long as the user sets log_min_messages to DEBUG2 or higher. > > > puts(config_val ? config_val : ""); > > + > > + /* don't emit shutdown messages */ > > + SetConfigOption("log_min_messages", "PANIC", PGC_INTERNAL, > > PGC_S_OVERRIDE); > > + > > ExitPostmaster(0); > > That's fancy, but I don't like that much. And this would not protect > either against any messages generated before this code path, either,
But neither would the suggestion of redirecting stderr to /dev/null. In fact, doing the redirect it will *also* throw away any FATAL that happens. In fact, using the 2>/dev/null method, we *also* remove the message that says there's another postmaster running in this directory, which is strictly worse than the override of log_min_messages. That said, the redirect can be removed without recompiling postgres, so it is probably still hte better choice as a temporary workaround. But we should really look into getting a better solution in place once we start on 16. > My solution for the docs is perhaps too confusing for the end-user, > and we are talking about a Linux-only thing here anyway. So, at the > end, I am tempted to just add the "2> /dev/null" as suggested upthread > by Nathan and call it a day. Does that sound fine? What would be a linux only thing? -- Magnus Hagander Me: https://www.hagander.net/ Work: https://www.redpill-linpro.com/