The default behaviour of these services is to bind to "0.0.0.0", which means "any IP" essentially. That means they will work even when the nic isn't there yet, because localhost is. It also means that once a new nic comes up, they will listen on all its addresses too, without any other changes in configuration or restarts. Same for when an address disappears. It's definitely a good default for network services.
The moment you tell a service to bind to a specific IP, however, if that IP is not available then it will fail. That's where IP_FREEBIND comes in. It requires code changes, though. This systemd upstream article talks about the pros and cons of depending on network-online.target: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/. In general, it should be avoided if possible. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to rsync in Ubuntu. https://bugs.launchpad.net/bugs/1774788 Title: Daemon won't start at boot up (18LTS fully patched) Status in rsync: Unknown Status in rsync package in Ubuntu: Triaged Bug description: By adding the 'address=' option to the /etc/rsyncd.conf file, the daemon fails at boot. Once the NIC(s) is/are up, it will start fine when executed via systemctl start rsync ● rsync.service - fast remote file copy program daemon Loaded: loaded (/lib/systemd/system/rsync.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sat 2018-06-02 08:01:31 CST; 52min ago Process: 851 ExecStart=/usr/bin/rsync --daemon --no-detach (code=exited, status=10) Main PID: 851 (code=exited, status=10) Jun 02 08:01:31 billlaptop.private.ycc systemd[1]: Started fast remote file copy program daemon. Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: rsyncd version 3.1.2 starting, listening on port 873 Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: bind() failed: Cannot assign requested address (address-family 2) Jun 02 08:01:31 billlaptop.private.ycc systemd[1]: rsync.service: Main process exited, code=exited, status=10/n/a Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: unable to bind any inbound sockets on port 873 Jun 02 08:01:31 billlaptop.private.ycc systemd[1]: rsync.service: Failed with result 'exit-code'. Jun 02 08:01:31 billlaptop.private.ycc rsyncd[851]: rsync error: error in socket IO (code 10) at socket.c(555) [Receiver=3.1.2] ProblemType: Bug DistroRelease: Ubuntu 18.04 Package: rsync 3.1.2-2.1ubuntu1 ProcVersionSignature: Ubuntu 4.15.0-22.24-generic 4.15.17 Uname: Linux 4.15.0-22-generic x86_64 ApportVersion: 2.20.9-0ubuntu7.1 Architecture: amd64 CurrentDesktop: GNOME Date: Sat Jun 2 08:48:15 2018 InstallationDate: Installed on 2018-06-01 (0 days ago) InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426) SourcePackage: rsync UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/rsync/+bug/1774788/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp