Re: Q: Wanting a target

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 23, 2022 at 3:40 PM Ulrich Windl <Ulrich.Windl@xxxxxxxxxxxxxxxxxxxx> wrote:
Hi!

I think there was a recent discussion saying that no unit should Want= or Require= a target, but only use them for ordering.
I have basically three questions:

1) Is the statement above correct?

Not for all targets in general. It may be correct for some .targets but not others, and for some services but not others, but something *does* need to pull the target in as a dependency, otherwise it would never be started – there's (almost) nothing special in ordering against targets, After=foo.target only waits for foo.target to become "started" like for other unit types.

Some of the systemd-provided targets differ in whether the "provider" vs "consumer" should Want them. For example, systemd.special(7) says that Wants=network.target should go in the network provider (so other services only need an After), while Wants=network-online.target would go in the "consumer" service that wants to *wait* for network (as the target itself has dependencies that shouldn't be started unless needed).

For some targets, "Wants or no Wants" follows the same rules as for services – e.g. tinc VPN became multi-instance and got a .target to cover all instances, so if you previously wouldn't have used Wants=tinc.service but only After, then the same applies to the new .target as well.
 

2) When is a target displayed as "started" by sysctemctl status then?

When it gets started.
 

3: Which of the following (form current SLES12 SP5, grep-style) are wrong?:

/usr/lib/systemd/system/ntpd.service:Wants=network.target
/usr/lib/systemd/system/ntpd.service:After=network.target

/usr/lib/systemd/system/nfs-server.service:Requires= network.target proc-fs-nfsd.mount
/usr/lib/systemd/system/nfs-server.service:After= network.target proc-fs-nfsd.mount rpcbind.socket nfs-mountd.service

/usr/lib/systemd/system/nmb.service:After=network.target

According to docs for network.target, it's the first two that are "wrong".

--
Mantas Mikulėnas

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux