sysinit.target: Drop the dependency on local-fs.target and swap.target

Having all services with DefaultDependencies=yes depend on
local-fs.target is annoying, because some of those services might be
necessary to mount local filesystems.  For instance, Charon's
send-keys feature requires sshd to be running in order to receive LUKS
encryption keys, which in turn requires dhcpcd, and so on.  So we drop
this dependency (and swap.target as well for consistency).  If
services require a specific mount, they should use RequiresMountsFor
in any case.
This commit is contained in:
Eelco Dolstra 2012-12-14 17:42:54 +01:00
parent 5437424297
commit bd7ea9be58

View File

@ -22,7 +22,7 @@ let
upstreamUnits =
[ # Targets.
"basic.target"
"sysinit.target"
#"sysinit.target"
"sockets.target"
"graphical.target"
"multi-user.target"
@ -459,6 +459,17 @@ in
{ description = "Security Keys";
};
# This is like the upstream sysinit.target, except that it doesn't
# depend on local-fs.target and swap.target. If services need to
# be started after some filesystem (local or otherwise) has been
# mounted, they should use the RequiresMountsFor option.
boot.systemd.targets.sysinit =
{ description = "System Initialization";
after = [ "emergency.service" "emergency.target" ];
unitConfig.Conflicts = "emergency.service emergency.target";
unitConfig.RefuseManualStart = true;
};
boot.systemd.units =
{ "rescue.service".text = rescueService; }
// mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.targets