Server start with systemd and configured with IP address
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/14/server-start.html
Description:
The url of the document is
https://www.postgresql.org/docs/current/server-start.html
My suggestion is add to the documentation in the segment that shows the
systemd entry inside the [Unit] segment the line
After=network-online.target
I saw in several sites that most people recommends using
After=network.target
but this will fail if the server is configured to listen on a specific IP
address instead of just localhost or 127.0.0.1
the differences between them is explained here
https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/#conceptsinsystemd
TLDR; network.target is after the network is up (but presumably without
address set, just the network stack) and network-online.target is after an
IP address has been set.
Best Regards
Pablo.
PG Doc comments form <noreply@postgresql.org> writes:
My suggestion is add to the documentation in the segment that shows the
systemd entry inside the [Unit] segment the line
After=network-online.target
I saw in several sites that most people recommends using
After=network.target
but this will fail if the server is configured to listen on a specific IP
address instead of just localhost or 127.0.0.1
Yeah, I have also found with other daemons that if you use specific
IP addresses in the configuration, you need network-online.target.
Some references suggest that you *also* need to say
Wants=network-online.target [1]https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/.
It might be that network.target is sufficient if you just bind to
"*", but considering that we're not mentioning that either right
now, I don't see a need to discuss the difference.
(Down the road, maybe we should consider using IP_FREEBIND on
Linux, as suggested at [1]https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ ... although that hobbles error
detection, so I'm not really sold that it's such a great idea.)
regards, tom lane
[1]: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/