Add
After=network-online.target
Wants=network-online.target
to the suggested unit file for starting a Postgres server.
This delays startup until the network interfaces have been
configured; without that, any attempt to bind to a specific
IP address will fail.
If listen_addresses is set to "localhost" or "*", it might be
possible to get away with the less restrictive "network.target",
but I don't think we need to get into such detail here.
Per suggestion from Pablo Federico.
Discussion: https://postgr.es/m/
166552157407.591805.
10036014441784710940@wrigleys.postgresql.org
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
+After=network-online.target
+Wants=network-online.target
[Service]
Type=notify