diff --git a/man/systemd.automount.xml b/man/systemd.automount.xml
index 26a0f291dd..1b0ae832da 100644
--- a/man/systemd.automount.xml
+++ b/man/systemd.automount.xml
@@ -85,10 +85,24 @@
Automount units may be used to implement on-demand mounting
as well as parallelized mounting of file systems.
+
+
+
+ Automatic Dependencies
+
+ If an automount unit is beneath another mount unit in the
+ file system hierarchy, both a requirement and an ordering
+ dependency between both units are created automatically.
+
+ An implicit Before= dependency is created
+ between an automount unit and the mount unit it activates.
+
+ Automount units acquire automatic Before=
+ and Conflicts= on
+ umount.target in order to be stopped during
+ shutdown, unless DefaultDependencies=no is
+ set.
- If an automount point is beneath another mount point in the
- file system hierarchy, a dependency between both units is created
- automatically.
diff --git a/man/systemd.device.xml b/man/systemd.device.xml
index ac6deafb18..effed098dd 100644
--- a/man/systemd.device.xml
+++ b/man/systemd.device.xml
@@ -83,7 +83,18 @@
the escaping logic used to convert a file system path to a unit
name see
systemd.unit5.
+
+
+ Automatic Dependencies
+
+ Many unit types automatically acquire dependencies on device
+ units of devices they require. For example,
+ .socket unit acquire dependencies on the
+ device units of the network interface specified in
+ BindToDevice=. Similar, swap and mount units
+ acquire dependencies on the units encapsulating their backing
+ block devices.
diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml
index 2b090871ff..6317830ae2 100644
--- a/man/systemd.exec.xml
+++ b/man/systemd.exec.xml
@@ -76,6 +76,31 @@
unit type.
+
+ Automatic Dependencies
+
+ A few execution parameters result in additional, automatic
+ dependencies to be added.
+
+ Units with WorkingDirectory= or
+ RootDirectory= set automatically gain
+ dependencies of type Requires= and
+ After= on all mount units required to access
+ the specified paths. This is equivalent to having them listed
+ explicitly in RequiresMountsFor=.
+
+ Similar, units with PrivateTmp= enabled
+ automatically get mount unit dependencies for all mounts
+ required to access /tmp and
+ /var/tmp.
+
+ Units whose output standard output or error output is
+ connected to any other sink but ,
+ and automatically
+ acquire dependencies of type After= on
+ journald.socket.
+
+
Options
@@ -93,7 +118,9 @@
and the respective user's home directory if run as user. If
the setting is prefixed with the -
character, a missing working directory is not considered
- fatal.
+ fatal. Note that setting this parameter might result in
+ additional dependencies to be added to the unit (see
+ above).
@@ -104,7 +131,9 @@
project='man-pages'>chroot2
system call. If this is used, it must be ensured that the
process binary and all its auxiliary files are available in
- the chroot() jail.
+ the chroot() jail. Note that setting this
+ parameter might result in additional dependencies to be added
+ to the unit (see above).
@@ -351,6 +380,7 @@
This setting defaults to
.
+
StandardOutput=Controls where file descriptor 1 (STDOUT) of
@@ -416,8 +446,11 @@
This setting defaults to the value set with
in
systemd-system.conf5,
- which defaults to .
+ which defaults to . Note that setting
+ this parameter might result in additional dependencies to be
+ added to the unit (see above).
+
StandardError=Controls where file descriptor 2 (STDERR) of
@@ -428,8 +461,11 @@
standard error. This setting defaults to the value set with
in
systemd-system.conf5,
- which defaults to .
+ which defaults to . Note that setting
+ this parameter might result in additional dependencies to be
+ added to the unit (see above).
+
TTYPath=Sets the terminal device node to use if
diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
index dd6b7a51a8..67e96dc157 100644
--- a/man/systemd.mount.xml
+++ b/man/systemd.mount.xml
@@ -94,10 +94,6 @@
unit, to allow on-demand or parallelized mounting. See
systemd.automount5.
- If a mount point is beneath another mount point in the file
- system hierarchy, a dependency between both units is created
- automatically.
-
Mount points created at runtime (independently of unit files
or /etc/fstab) will be monitored by systemd
and appear like any other mount unit in systemd. See
@@ -113,6 +109,52 @@
File Systems.
+
+ Automatic Dependencies
+
+ If a mount unit is beneath another mount unit in the file
+ system hierarchy, both a requirement dependency and an ordering
+ dependency between both units are created automatically.
+
+ Block device backed file systems automatically gain
+ BindsTo= and After= type
+ dependencies on the device unit encapsulating the block
+ device (see below).
+
+ If traditional file system quota is enabled for a mount
+ unit, automatic Wants= and
+ Before= dependencies on
+ systemd-quotacheck.service and
+ quotaon.service are added.
+
+ For mount units with
+ DefaultDependencies=yes (the default) a couple
+ additional dependencies are added. Mount units referring to local
+ file systems automatically gain an After=
+ dependency on local-fs-pre.target. Network
+ mount units automatically acquire After=
+ dependencies on remote-fs-pre.target,
+ network.target and
+ network-online.target. Towards the latter a
+ Wants= unit is added as well. Mount units
+ referring to local and network file systems are distinguished by
+ their file system type specification. In some cases this is not
+ sufficient (for example network block device based mounts, such as
+ iSCSI), in which case may be added to the
+ mount option string of the unit, which forces systemd to consider the
+ mount unit a network mount. Mount units (regardless if local or
+ network) also acquire automatic Before= and
+ Conflicts= on
+ umount.target in order to be stopped
+ during shutdown.
+
+ Additional implicit dependencies may be added as result of
+ execution and resource control parameters as documented in
+ systemd.exec5
+ and
+ systemd.resource-control5.
+
+
fstab
@@ -130,7 +172,7 @@
When reading /etc/fstab a few special
mount options are understood by systemd which influence how
dependencies are created for mount points. systemd will create a
- dependency of type or
+ dependency of type Wants= or
(see option
below), from either local-fs.target or
remote-fs.target, depending whether the file
diff --git a/man/systemd.path.xml b/man/systemd.path.xml
index d02bc92ae6..1bd65ce86d 100644
--- a/man/systemd.path.xml
+++ b/man/systemd.path.xml
@@ -79,13 +79,24 @@
limitations as inotify, and for example cannot be used to monitor
files or directories changed by other machines on remote NFS file
systems.
+
- If a path unit is beneath another mount point in the file
- system hierarchy, a dependency between both units is created
- automatically.
+
+ Automatic Dependencies
+
+ If a path unit is beneath another mount unit in the file
+ system hierarchy, both a requirement and an ordering dependency
+ between both units are created automatically.
+
+ An implicit Before= dependency is added
+ between a path unit and the unit it is supposed to activate.Unless DefaultDependencies=false is used,
path units will implicitly have dependencies of type
+ Before= on paths.target,
+ dependencies of type After= and
+ Requires= on
+ sysinit.target, and have dependencies of type
Conflicts= and Before= on
shutdown.target. These ensure that path units
are terminated cleanly prior to system shutdown. Only path units
diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml
index 164adb938a..0497f60546 100644
--- a/man/systemd.resource-control.xml
+++ b/man/systemd.resource-control.xml
@@ -89,6 +89,15 @@
use of resource control APIs from programs.
+
+ Automatic Dependencies
+
+ Units with the Slice= setting set get
+ automatic Requires= and
+ After= dependencies on the specified slice
+ unit.
+
+
Options
diff --git a/man/systemd.scope.xml b/man/systemd.scope.xml
index fd65a851e2..f69b2ef635 100644
--- a/man/systemd.scope.xml
+++ b/man/systemd.scope.xml
@@ -72,6 +72,10 @@
url="http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/">New
Control Group Interfaces for an introduction on how to make
use of scope units from programs.
+
+
+
+ Automatic DependenciesUnless DefaultDependencies=false
is used, scope units will implicitly have dependencies of
@@ -82,6 +86,11 @@
shutdown. Only scope units involved with early boot or
late system shutdown should disable this option.
+
+ Additional implicit dependencies may be added as result of
+ resource control parameters as documented in
+ systemd.resource-control5.
+
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
index 4e5098f0e1..c6ed75d158 100644
--- a/man/systemd.service.xml
+++ b/man/systemd.service.xml
@@ -1,4 +1,4 @@
-
+
@@ -77,18 +77,6 @@
which configure resource control settings for the processes of the
service.
- Unless DefaultDependencies= is set to
- , service units will implicitly have
- dependencies of type Requires= and
- After= on basic.target as
- well as dependencies of type Conflicts= and
- Before= on
- shutdown.target. These ensure that normal
- service units pull in basic system initialization, and are
- terminated cleanly prior to system shutdown. Only services
- involved with early boot or late system shutdown should disable
- this option.
-
If a service is requested under a certain name but no unit
configuration file is found, systemd looks for a SysV init script
by the same name (with the .service suffix
@@ -97,8 +85,39 @@
compatibility is quite comprehensive but not 100%. For details
about the incompatibilities, see the Incompatibilities
- with SysV document.
-
+ with SysV document.
+
+
+
+ Automatic Dependencies
+
+ Services with Type=dbus set automatically
+ acquire dependencies of type Requires= and
+ After= on
+ dbus.socket.
+
+ Socket activated service are automatically ordered after
+ their activated .socket units via an
+ automatic After= dependency.
+
+ Unless DefaultDependencies= is set to
+ , service units will implicitly have
+ dependencies of type Requires= and
+ After= on sysinit.target,
+ a dependency of type After= on
+ basic.target as well as dependencies of
+ type Conflicts= and Before=
+ on shutdown.target. These ensure that normal
+ service units pull in basic system initialization, and are
+ terminated cleanly prior to system shutdown. Only services
+ involved with early boot or late system shutdown should disable
+ this option.
+
+ Additional implicit dependencies may be added as result of
+ execution and resource control parameters as documented in
+ systemd.exec5
+ and
+ systemd.resource-control5.
diff --git a/man/systemd.slice.xml b/man/systemd.slice.xml
index 87c2a3bce3..5c87bf0260 100644
--- a/man/systemd.slice.xml
+++ b/man/systemd.slice.xml
@@ -97,6 +97,14 @@
url="http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/">New
Control Group Interfaces for an introduction on how to make
use of slice units from programs.
+
+
+
+ Automatic Dependencies
+
+ Slice units automatically gain dependencies of type
+ After= and Requires= on
+ their immediate parent slice unit.Unless DefaultDependencies=false
is used, slice units will implicitly have dependencies of
diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml
index 410886f841..beac053bf0 100644
--- a/man/systemd.socket.xml
+++ b/man/systemd.socket.xml
@@ -133,6 +133,40 @@
service file).
+
+ Automatic Dependencies
+
+ Socket units automatically gain a Before=
+ dependency on the service units they activate.
+
+ Socket units referring to file system paths (such as AF_UNIX
+ sockets or FIFOs) implicitly gain Requires= and
+ After= dependencies on all mount units
+ necessary to access those paths.
+
+ Socket units using the BindToDevice=
+ setting automatically gain a BindsTo= and
+ After= dependency on the device unit
+ encapsulating the specified network interface.
+
+ If DefaultDependencies=yes is set (the
+ default), socket units automatically gain a
+ Before= dependency on
+ sockets.target. They also gain a pair of
+ After= and Requires=
+ dependency on sysinit.target, and a pair of
+ Before= and Conflicts=
+ dependencies on shutdown.target. These
+ dependencies ensure that the socket unit is started before normal
+ services at boot, and is stopped on shutdown.
+
+ Additional implicit dependencies may be added as result of
+ execution and resource control parameters as documented in
+ systemd.exec5
+ and
+ systemd.resource-control5.
+
+
Options
@@ -309,12 +343,14 @@
Specifies a network interface name to bind
this socket to. If set, traffic will only be accepted from the
specified network interfaces. This controls the
- SO_BINDTODEVICE socket option (see
- socket7
+ SO_BINDTODEVICE socket option (see socket7
for details). If this option is used, an automatic dependency
from this socket unit on the network interface device unit
(systemd.device5
- is created.
+ is created. Note that setting this parameter might result in
+ additional dependencies to be added to the unit (see
+ above).
@@ -719,7 +755,9 @@
with Accept=no. It defaults to the service
that bears the same name as the socket (with the suffix
replaced). In most cases, it should not be necessary to use
- this option.
+ this option. Note that setting this parameter might result in
+ additional dependencies to be added to the unit (see
+ above).
diff --git a/man/systemd.swap.xml b/man/systemd.swap.xml
index bc9ef826e1..c600405c87 100644
--- a/man/systemd.swap.xml
+++ b/man/systemd.swap.xml
@@ -68,14 +68,15 @@
Additional options are listed in
systemd.exec5,
- which define the execution environment the
- swapon8
- binary is executed in, and in
+ which define the execution environment the swapon8
+ binary is executed in, in
systemd.kill5,
- which define the way the processes are terminated, and in
+ which define the way the these processes are
+ terminated, and in
systemd.resource-control5,
- which configure resource control settings for the processes of the
- service.
+ which configure resource control settings for these processes of the
+ unit.
Swap units must be named after the devices
or files they control. Example: the swap device
@@ -84,15 +85,28 @@
the escaping logic used to convert a file system path to a unit
name, see
systemd.unit5.
+
- All swap units automatically get the appropriate
- dependencies on the devices or on the mount points of the files
+
+ Automatic Dependencies
+
+ All swap units automatically get the
+ BindsTo= and After=
+ dependencies on the device units or the mount units of the files
they are activated from.Swap units with DefaultDependencies=
- enabled implicitly acquire a conflicting dependency to
+ enabled implicitly acquire a Conflicts= and an
+ After= dependency on
umount.target so that they are deactivated at
- shutdown.
+ shutdown, unless DefaultDependencies=no is
+ specified.
+
+ Additional implicit dependencies may be added as result of
+ execution and resource control parameters as documented in
+ systemd.exec5
+ and
+ systemd.resource-control5.
diff --git a/man/systemd.target.xml b/man/systemd.target.xml
index e790e9b77a..54a5f5035c 100644
--- a/man/systemd.target.xml
+++ b/man/systemd.target.xml
@@ -77,15 +77,20 @@
See
systemd.special7
for details).
+
+
+
+ Automatic DependenciesUnless DefaultDependencies= is set to
- , target units will implicitly complement
- all configured dependencies of type Wants=,
+ , target units will implicitly complement all
+ configured dependencies of type Wants=,
Requires=,
RequiresOverridable= with dependencies of type
- After= if the units in question also have
- DefaultDependencies=true.
-
+ After=, unless an ordering dependency of any
+ kind between the target and the respective other unit is already
+ in place. Note that this behaviour is disabled if either unit has
+ DefaultDependencies=no.
diff --git a/man/systemd.timer.xml b/man/systemd.timer.xml
index c98258a0d7..8cf6c4683b 100644
--- a/man/systemd.timer.xml
+++ b/man/systemd.timer.xml
@@ -1,4 +1,4 @@
-
+
@@ -73,19 +73,29 @@
foo.timer activates a matching service
foo.service. The unit to activate may be
controlled by Unit= (see below).
+
+
+
+ Automatic Dependencies
+
+ Timer units automatically gain a Before=
+ dependency on the service they are supposed to activate.Unless DefaultDependencies= is set to
, all timer units will implicitly have
- dependencies of type Conflicts= and
- Before= on shutdown.target
- to ensure that they are stopped cleanly prior to system shutdown.
- Timer units with at least one OnCalendar=
- directive will have an additional After=
- dependency on timer-sync.target to avoid
- being started before the system clock has been correctly set. Only
- timer units involved with early boot or late system shutdown
- should disable the DefaultDependencies=
- option.
+ dependencies of type Requires= and
+ After= on sysinit.target,
+ a dependency of type Before= on
+ timers.target, as well as
+ Conflicts= and Before= on
+ shutdown.target to ensure that they are
+ stopped cleanly prior to system shutdown. Timer units with at
+ least one OnCalendar= directive will have an
+ additional After= dependency on
+ timer-sync.target to avoid being started
+ before the system clock has been correctly set. Only timer units
+ involved with early boot or late system shutdown should disable
+ the DefaultDependencies= option.
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
index caba7ea69d..b4044f43ef 100644
--- a/man/systemd.unit.xml
+++ b/man/systemd.unit.xml
@@ -1,4 +1,4 @@
-
+
@@ -195,12 +195,6 @@
consider it mostly obsolete, and want people to
use .d/ drop-ins instead. -->
- Note that while systemd offers a flexible dependency system
- between units it is recommended to use this functionality only
- sparingly and instead rely on techniques such as bus-based or
- socket-based activation which make dependencies implicit,
- resulting in a both simpler and more flexible system.
-
Some unit names reflect paths existing in the file system
namespace. Example: a device unit
dev-sda.device refers to a device with the
@@ -253,6 +247,31 @@
+
+ Automatic Dependencies
+
+ Note that while systemd offers a flexible dependency system
+ between units it is recommended to use this functionality only
+ sparingly and instead rely on techniques such as bus-based or
+ socket-based activation which make dependencies implicit,
+ resulting in a both simpler and more flexible system.
+
+ A number of unit dependencies are automatically established,
+ depending on unit configuration. On top of that, for units with
+ DefaultDependencies=yes (the default) a couple
+ of additional dependencies are added. The precise effect of
+ DefaultDependencies=yes depends on the unit
+ type (see below).
+
+ If DefaultDependencies=yes is set, units
+ that are referenced by other units of type
+ .target via a Wants= or
+ Requires= dependency might automatically gain
+ an Before= dependency too. See
+ systemd.target5
+ for details.
+
+
Unit File Load Path