On Mon, Aug 27, 2018 at 12:51:13PM -0400, Eli Schwartz via arch-general wrote:
On 8/27/18 8:45 AM, Leonid Isaev via arch-general wrote:
While going over .service files on my system, I noticed that quite a few of them, not belonging to systemd package, contain DefaultDependencies=no (DD=no). This is understandable (perhaps) for programs like systemd-journald, but what about normal daemons, like rpcbind, haveged and rpc-nfsd? I thought that setting DD=no is kind of a hack needed only for special services (e.g. called from fstab via x-systemd.requires=). Or am I missing something?
DefaultDependencies=false means it won't get "ensure that the service is started only after basic system initialization is completed and is properly terminated on system shutdown." (from the systemd.unit(5) man page).
Yeah, systemd.service manpage is more relevant here. Because it says that daemons with DD=no are also not subject to the normal shutdown logic...
Seems like a reasonable thing to want to avoid for programs that are meant to be started as part of initializing the system.
Initialization or early boot?
e.g. you might want RPC daemons running as soon as possible. You most likely do want haveged running as soon as possible.
Actually, digging into nfs-utils I understand why devs did it (for NFS-mounted /var). But they also were careful to specify dependencies on services that are pulled as a part of basic and sysinit targets. I disagree with that decision because I might want to bring firewall (iptables.service obeys the normal DD logic) before NFS/rpcbind is started (I do it for port-forwarding RPCbind and ypserv calls into a container).
But I'm really not sure why you'd need haveged in early boot (as opposed to inird), nor that it doesn't require any of the early-boot services...
But thx anyway,