On (29/02/16 11:36), Noriko Hosoi wrote: >On 02/29/2016 11:01 AM, Lukas Slebodnik wrote: >>On (29/02/16 18:43), Noriko Hosoi wrote: >>>wrappers/systemd.template.service.in | 2 +- >>>1 file changed, 1 insertion(+), 1 deletion(-) >>> >>>New commits: >>>commit 1e2cfe2ea4ebc7ac31f292bf0076cc1befd15a78 >>>Author: Viktor Ashirov <vashi...@redhat.com> >>>Date: Mon Feb 29 19:07:12 2016 +0100 >>> >>> Ticket 48747 - dirsrv service fails to start when nsslapd-listenhost is >>> configured >>> Bug Description: >>> In some environments network initialization takes a long time (slow >>> DHCP, etc). >>> When nsslapd-listenhost is configured, dirsrv systemd service fails to >>> start, >>> because it doesn't wait for the network to be available. >>> Fix Description: >>> Make dirsrv@.service wait for network.service >>> https://fedorahosted.org/389/ticket/48747 >>> Reviewed by nho...@redhat.com. >>> >>>diff --git a/wrappers/systemd.template.service.in >>>b/wrappers/systemd.template.service.in >>>index 629c1ad..3eb0789 100644 >>>--- a/wrappers/systemd.template.service.in >>>+++ b/wrappers/systemd.template.service.in >>>@@ -15,7 +15,7 @@ >>>[Unit] >>>Description=@capbrand@ Directory Server %i. >>>PartOf=@systemdgroupname@ >>>-After=chronyd.service >>>+After=chronyd.service network.service >> ^^^^^^^^^^^^^^^ >> I'm not sure it is a right solution. >>network.service: >>● network.service - LSB: Bring up/down networking >> Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) >> Active: inactive (dead) >> Docs: man:systemd-sysv-generator(8) >> >>I think you should use "network-online.target" >>more details in man 7 systemd.special >>or even better http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget >> >>@see also ntpdate.service chrony-dnssrv@.service >> >>LS >Thanks for your input, Lukas! > >I'm reading the docs you mentioned ... > >https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ >> Alternatively, you can change your service that needs the network to be up, >to include After=network-online.target and Wants=network-online.target. > >man 7 systemd.special >>network-online.target >> Units that strictly require a configured network connection >>should pull in >> network-online.target (via a Wants= type dependency) and order >>themselves after it. This >> target unit is intended to pull in a service that delays further >>execution until the >> network is sufficiently set up. What precisely this requires is >>left to the implementation >> of the network managing service. >> >> Note the distinction between this unit and network.target. This >>unit is an active unit >> (i.e. pulled in by the consumer rather than the provider of this >>functionality) and pulls >> in a service which possibly adds substantial delays to further >>execution. In contrast, >> network.target is a passive unit (i.e. pulled in by the provider >>of the functionality, >> rather than the consumer) that usually does not delay execution >>much. Usually, >> network.target is part of the boot of most systems, while >>network-online.target is not, >> except when at least one unit requires it. Also see Running >>Services After the Network is >> up[1] for more information. >> >> All mount units for remote network file systems automatically >>pull in this unit, and order >> themselves after it. Note that networking daemons that simply >>provide functionality to >> other hosts generally do not need to pull this in. > >So, you think this does not give enough delay for the Directory Server's >start? I'm not sure about delay but "network.service" is not mentioned on that page and it's not used by many services
grep -Rn "network.service" /usr/lib/systemd/ /usr/lib/systemd/system/arp-ethers.service:5:After=network.service /usr/lib/systemd/system/NetworkManager.service:4:Before=network.target network.service >> +After=chronyd.service network.service > >And you suggest we should do >+After=chronyd.service network-online.target >as well as this? >+Wants=network-online.target > I think that this one should be used because "network.service" is mentioned only in NetworkManager.service on my machine and IMHO it needn't guarantee that network is online. network-online.target should be more reliable /usr/lib/systemd/system/NetworkManager.service:4:Before=network.target network.service But you my ask systemd guys about difference between "network.service" and "network-online.target" {lnykryn,msekleta} at redhat dot com or on IRC LS -- 389-devel mailing list 389-devel@%(host_name)s http://lists.fedoraproject.org/admin/lists/389-devel@lists.fedoraproject.org