mirror of
https://github.com/systemd/systemd.git
synced 2025-01-21 22:04:01 +03:00
units: introduce new timers.target and paths.target to hook timer/path units into for boot
This commit is contained in:
parent
1b036593b7
commit
e3d84721dc
10
Makefile.am
10
Makefile.am
@ -193,8 +193,8 @@ SHUTDOWN_TARGET_WANTS =
|
||||
LOCAL_FS_TARGET_WANTS =
|
||||
MULTI_USER_TARGET_WANTS =
|
||||
SYSINIT_TARGET_WANTS =
|
||||
BASIC_TARGET_WANTS =
|
||||
SOCKETS_TARGET_WANTS =
|
||||
TIMERS_TARGET_WANTS =
|
||||
|
||||
SYSTEM_UNIT_ALIASES =
|
||||
USER_UNIT_ALIASES =
|
||||
@ -211,8 +211,8 @@ install-target-wants-hook:
|
||||
what="$(LOCAL_FS_TARGET_WANTS)" && wants=local-fs.target && $(add-wants)
|
||||
what="$(MULTI_USER_TARGET_WANTS)" && wants=multi-user.target && $(add-wants)
|
||||
what="$(SYSINIT_TARGET_WANTS)" && wants=sysinit.target && $(add-wants)
|
||||
what="$(BASIC_TARGET_WANTS)" && wants=basic.target && $(add-wants)
|
||||
what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && $(add-wants)
|
||||
what="$(TIMERS_TARGET_WANTS)" && wants=timers.target && $(add-wants)
|
||||
|
||||
define add-wants
|
||||
[ -z "$$what" ] || ( \
|
||||
@ -371,6 +371,8 @@ dist_systemunit_DATA = \
|
||||
units/sigpwr.target \
|
||||
units/sleep.target \
|
||||
units/sockets.target \
|
||||
units/timers.target \
|
||||
units/paths.target \
|
||||
units/suspend.target \
|
||||
units/swap.target \
|
||||
units/systemd-initctl.socket \
|
||||
@ -3916,7 +3918,7 @@ SYSINIT_TARGET_WANTS += \
|
||||
systemd-tmpfiles-setup.service \
|
||||
systemd-sysctl.service \
|
||||
systemd-ask-password-console.path
|
||||
BASIC_TARGET_WANTS += \
|
||||
TIMERS_TARGET_WANTS += \
|
||||
systemd-tmpfiles-clean.timer
|
||||
|
||||
if HAVE_SYSV_COMPAT
|
||||
@ -3938,6 +3940,8 @@ SYSTEM_UNIT_ALIASES += \
|
||||
USER_UNIT_ALIASES += \
|
||||
$(systemunitdir)/shutdown.target shutdown.target \
|
||||
$(systemunitdir)/sockets.target sockets.target \
|
||||
$(systemunitdir)/timers.target timers.target \
|
||||
$(systemunitdir)/paths.target paths.target \
|
||||
$(systemunitdir)/bluetooth.target bluetooth.target \
|
||||
$(systemunitdir)/printer.target printer.target \
|
||||
$(systemunitdir)/sound.target sound.target
|
||||
|
143
man/bootup.xml
143
man/bootup.xml
@ -50,18 +50,20 @@
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>A number of different components are involved in the
|
||||
system boot. Immediately after power-up, the system
|
||||
BIOS will do minimal hardware initialization, and hand
|
||||
control over to a boot loader stored on a persistent
|
||||
storage device. This boot loader will then invoke an
|
||||
OS kernel from disk (or the network). In the Linux
|
||||
case this kernel now (optionally) extracts and
|
||||
<para>A number of different components are involved in
|
||||
the system boot. Immediately after power-up, the
|
||||
system BIOS will do minimal hardware initialization,
|
||||
and hand control over to a boot loader stored on a
|
||||
persistent storage device. This boot loader will then
|
||||
invoke an OS kernel from disk (or the network). In the
|
||||
Linux case this kernel (optionally) extracts and
|
||||
executes an initial RAM disk image (initrd) such as
|
||||
<citerefentry><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
which looks for the root file system. After the root
|
||||
file system is found and mounted the initrd hands over
|
||||
control to the system manager (such as
|
||||
which looks for the root file system (possibly using
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
for this). After the root file system is found and
|
||||
mounted the initrd hands over control to the host's
|
||||
system manager (such as
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
|
||||
stored on the OS image which is then responsible for
|
||||
probing all remaining hardware, mounting all necessary
|
||||
@ -132,35 +134,35 @@
|
||||
v
|
||||
sysinit.target
|
||||
|
|
||||
_________________/|\___________________
|
||||
/ | \
|
||||
| | |
|
||||
v | v
|
||||
(various | rescue.service
|
||||
sockets...) | |
|
||||
| | v
|
||||
v | <emphasis>rescue.target</emphasis>
|
||||
sockets.target |
|
||||
| |
|
||||
\_________________ |
|
||||
\|
|
||||
____________________________________/|\________________________________________
|
||||
/ | | | \
|
||||
| | | | |
|
||||
v v | v v
|
||||
(various (various | (various rescue.service
|
||||
timers...) paths...) | sockets...) |
|
||||
| | | | v
|
||||
v v | v <emphasis>rescue.target</emphasis>
|
||||
timers.target paths.target | sockets.target
|
||||
| | | |
|
||||
\__________________|_________________ | ___________________/
|
||||
\|/
|
||||
v
|
||||
basic.target
|
||||
|
|
||||
__________________________________/| emergency.service
|
||||
/ | | |
|
||||
| | | v
|
||||
v v v <emphasis>emergency.target</emphasis>
|
||||
display- (various system (various system
|
||||
manager.service services services)
|
||||
| required for |
|
||||
| graphical UIs) v
|
||||
| | <emphasis>multi-user.target</emphasis>
|
||||
| | |
|
||||
\_______________ | _________________/
|
||||
____________________________________/| emergency.service
|
||||
/ | | |
|
||||
| | | v
|
||||
v v v <emphasis>emergency.target</emphasis>
|
||||
display- (various system (various system
|
||||
manager.service services services)
|
||||
| required for |
|
||||
| graphical UIs) v
|
||||
| | <emphasis>multi-user.target</emphasis>
|
||||
| | |
|
||||
\_________________ | _________________/
|
||||
\|/
|
||||
v
|
||||
<emphasis>graphical.target</emphasis></programlisting>
|
||||
<emphasis>graphical.target</emphasis></programlisting>
|
||||
|
||||
<para>Target units that are commonly used as boot
|
||||
targets are <emphasis>emphasized</emphasis>. These
|
||||
@ -174,23 +176,41 @@
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Initrd System Manager Bootup</title>
|
||||
<para>The default target in the initrd is the initrd.target. The bootup process is
|
||||
identical to the System Manager Bootup until it reaches basic.target. From there,
|
||||
systemd approaches the special initrd.target. If the root device can be mounted at
|
||||
/sysroot, the sysroot.mount unit becomes active and the initrd-root-fs.target is
|
||||
reached.
|
||||
The initrd-parse-etc.service scans /sysroot/etc/fstab for a possible /usr mountpoint
|
||||
and additional entries marked with the <emphasis>x-initrd.mount</emphasis> option.
|
||||
All entries found are mounted below /sysroot, and the initrd-fs.target is reached.
|
||||
The initrd-cleanup.service isolates to the initrd-switch-root.target, where cleanup
|
||||
services can run. As the very last step, the initrd-switch-root.service is activated,
|
||||
which will cause the system to switch its root to /sysroot.
|
||||
<title>Bootup in the Initial RAM Disk (initrd)</title>
|
||||
<para>The initial RAM disk implementation (initrd) can
|
||||
be set up using systemd as well. In this case boot up
|
||||
inside the initrd follows the following
|
||||
structure.</para>
|
||||
|
||||
<para>The default target in the initrd is
|
||||
<filename>initrd.target</filename>. The bootup process
|
||||
begins identical to the system manager bootup (see
|
||||
above) until it reaches
|
||||
<filename>basic.target</filename>. From there, systemd
|
||||
approaches the special target
|
||||
<filename>initrd.target</filename>. If the root device
|
||||
can be mounted at <filename>/sysroot</filename>, the
|
||||
<filename>sysroot.mount</filename> unit becomes active
|
||||
and <filename>initrd-root-fs.target</filename> is
|
||||
reached. The service
|
||||
<filename>initrd-parse-etc.service</filename> scans
|
||||
<filename>/sysroot/etc/fstab</filename> for a possible
|
||||
<filename>/usr</filename> mount point and additional
|
||||
entries marked with the
|
||||
<emphasis>x-initrd.mount</emphasis> option. All
|
||||
entries found are mounted below
|
||||
<filename>/sysroot</filename>, and
|
||||
<filename>initrd-fs.target</filename> is reached. The
|
||||
service <filename>initrd-cleanup.service</filename>
|
||||
isolates to the
|
||||
<filename>initrd-switch-root.target</filename>, where
|
||||
cleanup services can run. As the very last step, the
|
||||
<filename>initrd-switch-root.service</filename> is
|
||||
activated, which will cause the system to switch its
|
||||
root to <filename>/sysroot</filename>.
|
||||
</para>
|
||||
|
||||
<programlisting>
|
||||
(identical to System Manager Bootup)
|
||||
:
|
||||
<programlisting> : (beginning identical to above)
|
||||
:
|
||||
v
|
||||
basic.target
|
||||
@ -203,13 +223,13 @@
|
||||
| initrd-root-fs.target
|
||||
| |
|
||||
| v
|
||||
| initrd-parse-etc.service
|
||||
(custom initrd services) |
|
||||
| v
|
||||
v initrd-parse-etc.service
|
||||
(custom initrd |
|
||||
services...) v
|
||||
| (sysroot-usr.mount and
|
||||
| various mounts marked
|
||||
| with fstab option
|
||||
| x-initrd.mount)
|
||||
| x-initrd.mount...)
|
||||
| |
|
||||
| v
|
||||
| initrd-fs.target
|
||||
@ -225,11 +245,11 @@
|
||||
|
|
||||
v
|
||||
______________________/|
|
||||
/ |
|
||||
/ v
|
||||
| initrd-udevadm-cleanup-db.service
|
||||
| |
|
||||
(custom initrd services) |
|
||||
| |
|
||||
v |
|
||||
(custom initrd |
|
||||
services...) |
|
||||
\______________________ |
|
||||
\|
|
||||
v
|
||||
@ -239,17 +259,16 @@
|
||||
initrd-switch-root.service
|
||||
|
|
||||
v
|
||||
switch-root
|
||||
</programlisting>
|
||||
Transition to Host OS</programlisting>
|
||||
</refsect1>
|
||||
|
||||
|
||||
<refsect1>
|
||||
<title>System Manager Shutdown</title>
|
||||
|
||||
<para>System shutdown also consists of various target
|
||||
units with some minimal ordering structure
|
||||
applied:</para>
|
||||
<para>System shutdown with systemd also consists of
|
||||
various target units with some minimal ordering
|
||||
structure applied:</para>
|
||||
|
||||
|
||||
|
||||
|
@ -73,6 +73,7 @@
|
||||
<filename>network.target</filename>,
|
||||
<filename>nss-lookup.target</filename>,
|
||||
<filename>nss-user-lookup.target</filename>,
|
||||
<filename>paths.target</filename>,
|
||||
<filename>poweroff.target</filename>,
|
||||
<filename>printer.target</filename>,
|
||||
<filename>reboot.target</filename>,
|
||||
@ -97,6 +98,7 @@
|
||||
<filename>syslog.socket</filename>,
|
||||
<filename>system-update.target</filename>,
|
||||
<filename>time-sync.target</filename>,
|
||||
<filename>timers.target</filename>,
|
||||
<filename>umount.target</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
@ -116,22 +118,23 @@
|
||||
<term><filename>basic.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special target unit
|
||||
covering early boot-up.</para>
|
||||
covering basic boot-up.</para>
|
||||
<para>systemd automatically
|
||||
adds dependencies of the types
|
||||
Requires and After for this
|
||||
target unit to all SysV
|
||||
service units configured for
|
||||
runlevel 1 to 5.</para>
|
||||
<para>Usually this should pull-in
|
||||
all sockets, mount points,
|
||||
swap devices and other basic
|
||||
<varname>Requires=</varname>
|
||||
and <varname>After=</varname>
|
||||
for this target unit to all
|
||||
services (except for those
|
||||
with
|
||||
<varname>DefaultDependencies=no</varname>).</para>
|
||||
|
||||
<para>Usually this should
|
||||
pull-in all mount points, swap
|
||||
devices, sockets, timers, and
|
||||
path units and other basic
|
||||
initialization necessary for
|
||||
the general purpose
|
||||
daemons. Most normal daemons
|
||||
should have dependencies of
|
||||
type After and Requires on
|
||||
this unit.</para>
|
||||
general purpose
|
||||
daemons.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -139,9 +142,15 @@
|
||||
<listitem>
|
||||
<para>This target is started
|
||||
automatically as soon as a
|
||||
bluetooth controller is
|
||||
Bluetooth controller is
|
||||
plugged in or becomes
|
||||
available at boot.</para>
|
||||
|
||||
<para>This may be used to pull
|
||||
in Bluetooth management
|
||||
daemons dynamically when
|
||||
Bluetooth hardware is
|
||||
found.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -169,7 +178,7 @@
|
||||
<term><filename>dbus.service</filename></term>
|
||||
<listitem>
|
||||
<para>A special unit for the
|
||||
D-Bus system bus. As soon as
|
||||
D-Bus bus daemon. As soon as
|
||||
this service is fully started
|
||||
up systemd will connect to it
|
||||
and register its
|
||||
@ -182,7 +191,7 @@
|
||||
<para>A special unit for the
|
||||
D-Bus system bus socket. All
|
||||
units with
|
||||
<literal>Type=dbus</literal>
|
||||
<varname>Type=dbus</varname>
|
||||
automatically gain a
|
||||
dependency on this
|
||||
unit.</para>
|
||||
@ -198,6 +207,7 @@
|
||||
<filename>multi-user.target</filename>
|
||||
or
|
||||
<filename>graphical.target</filename>.</para>
|
||||
|
||||
<para>The default unit systemd
|
||||
starts at bootup can be
|
||||
overridden with the
|
||||
@ -247,8 +257,10 @@
|
||||
<term><filename>getty.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special target unit
|
||||
that pulls in all local TTY
|
||||
<filename>getty</filename> instances.
|
||||
that pulls in statically
|
||||
configured local TTY
|
||||
<filename>getty</filename>
|
||||
instances.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -261,11 +273,17 @@
|
||||
<filename>multi-user.target</filename>.</para>
|
||||
|
||||
<para>Units that are needed
|
||||
for graphical login shall add
|
||||
Wants dependencies for their
|
||||
unit to this unit (or
|
||||
for graphical logins shall add
|
||||
<varname>Wants=</varname>
|
||||
dependencies for their unit to
|
||||
this unit (or
|
||||
<filename>multi-user.target</filename>)
|
||||
during installation.</para>
|
||||
during installation. This is
|
||||
best configured via
|
||||
<varname>WantedBy=graphical.target</varname>
|
||||
in the unit's
|
||||
<literal>[Install]</literal>
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -290,7 +308,13 @@
|
||||
<term><filename>halt.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special target unit
|
||||
for shutting down and halting the system.</para>
|
||||
for shutting down and halting
|
||||
the system. Note that this
|
||||
target is distinct from
|
||||
<filename>poweroff.target</filename>
|
||||
in that it generally really
|
||||
just halts the system rather
|
||||
than powering it down.</para>
|
||||
|
||||
<para>Applications wanting to
|
||||
halt the system should start
|
||||
@ -300,16 +324,17 @@
|
||||
<varlistentry>
|
||||
<term><filename>initrd-fs.target</filename></term>
|
||||
<listitem>
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
Before to sysroot-usr.mount and
|
||||
all mount points fround in
|
||||
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically adds
|
||||
dependencies of type
|
||||
<varname>Before=</varname> to
|
||||
<filename>sysroot-usr.mount</filename>
|
||||
and all mount points fround in
|
||||
<filename>/etc/fstab</filename>
|
||||
that have the
|
||||
<option>auto</option> and
|
||||
<option>x-initrd.mount</option>
|
||||
mount options set.
|
||||
See also <literal>systemd-fstab-generator</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -338,20 +363,21 @@
|
||||
<varlistentry>
|
||||
<term><filename>local-fs.target</filename></term>
|
||||
<listitem>
|
||||
<para>systemd automatically
|
||||
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically adds
|
||||
dependencies of type
|
||||
<varname>Before=</varname> to
|
||||
all mount units that refer to
|
||||
local mount points for this
|
||||
target unit. In addition, it
|
||||
adds dependencies of type
|
||||
After to all mount units that
|
||||
refer to local mount points
|
||||
for this target unit. In
|
||||
addition, systemd adds
|
||||
dependencies of type Wants to
|
||||
<varname>Wants=</varname> to
|
||||
this target unit for those
|
||||
mounts listed in
|
||||
<filename>/etc/fstab</filename>
|
||||
that have the
|
||||
<option>auto</option> and
|
||||
<option>comment=systemd.mount</option>
|
||||
mount options set.</para>
|
||||
<option>auto</option> mount
|
||||
option set.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -377,9 +403,15 @@
|
||||
|
||||
<para>Units that are needed
|
||||
for a multi-user system shall
|
||||
add Wants dependencies to
|
||||
this unit for their unit during
|
||||
installation.</para>
|
||||
add <varname>Wants=</varname>
|
||||
dependencies for their unit to
|
||||
this unit during
|
||||
installation. This is best
|
||||
configured via
|
||||
<varname>WantedBy=multi-uer.target</varname>
|
||||
in the unit's
|
||||
<literal>[Install]</literal>
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -387,10 +419,10 @@
|
||||
<listitem>
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
After for this target unit to
|
||||
all SysV init script service
|
||||
units with an LSB header
|
||||
referring to the
|
||||
<varname>After=</varname> for
|
||||
this target unit to all SysV
|
||||
init script service units with
|
||||
an LSB header referring to the
|
||||
<literal>$network</literal>
|
||||
facility.</para>
|
||||
|
||||
@ -418,7 +450,8 @@
|
||||
<filename>nss-user-lookup.target</filename>
|
||||
should be used. systemd
|
||||
automatically adds
|
||||
dependencies of type After for
|
||||
dependencies of type
|
||||
<varname>After=</varname> for
|
||||
this target unit to all SysV
|
||||
init script service units with
|
||||
an LSB header referring to the
|
||||
@ -440,6 +473,29 @@
|
||||
should be used. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>paths.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special target unit
|
||||
that sets up all path units
|
||||
(see
|
||||
<citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details) that shall be
|
||||
active after boot.</para>
|
||||
|
||||
<para>It is recommended that
|
||||
path units installed by
|
||||
applications get pulled in via
|
||||
<varname>Wants=</varname>
|
||||
dependencies from this
|
||||
unit. This is best configured
|
||||
via a
|
||||
<varname>WantedBy=paths.target</varname>
|
||||
in the path unit's
|
||||
<literal>[Install]</literal>
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>poweroff.target</filename></term>
|
||||
<listitem>
|
||||
@ -463,6 +519,12 @@
|
||||
printer is plugged in or
|
||||
becomes available at
|
||||
boot.</para>
|
||||
|
||||
<para>This may be used to pull
|
||||
in printer management
|
||||
daemons dynamically when
|
||||
printer hardware is
|
||||
found.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -490,10 +552,10 @@
|
||||
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
After for this target unit to
|
||||
all SysV init script service
|
||||
units with an LSB header
|
||||
referring to the
|
||||
<varname>After=</varname> for
|
||||
this target unit to all SysV
|
||||
init script service units with
|
||||
an LSB header referring to the
|
||||
<literal>$remote_fs</literal>
|
||||
facility.</para>
|
||||
</listitem>
|
||||
@ -525,11 +587,14 @@
|
||||
<varlistentry>
|
||||
<term><filename>initrd-root-fs.target</filename></term>
|
||||
<listitem>
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
Before to the sysroot.mount unit,
|
||||
which is generated from the kernel command
|
||||
line by the <literal>systemd-fstab-generator</literal>.
|
||||
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
automatically adds
|
||||
dependencies of type
|
||||
<varname>Before=</varname> to
|
||||
the
|
||||
<filename>sysroot.mount</filename>
|
||||
unit, which is generated from
|
||||
the kernel command line.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -538,10 +603,10 @@
|
||||
<listitem>
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
After for this target unit to
|
||||
all SysV init script service
|
||||
units with an LSB header
|
||||
referring to the
|
||||
<varname>After=</varname> for
|
||||
this target unit to all SysV
|
||||
init script service units with
|
||||
an LSB header referring to the
|
||||
<literal>$portmap</literal>
|
||||
facility.</para>
|
||||
</listitem>
|
||||
@ -574,20 +639,12 @@
|
||||
|
||||
<para>Services that shall be
|
||||
terminated on system shutdown
|
||||
shall add Conflicts
|
||||
shall add <varname>Conflicts=</varname>
|
||||
dependencies to this unit for
|
||||
their service unit, which is
|
||||
implicitly done when
|
||||
<varname>DefaultDependencies=yes</varname>
|
||||
is set (the default).</para>
|
||||
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
Conflicts to this target unit
|
||||
for all SysV init script
|
||||
service units that shall be
|
||||
terminated in SysV runlevels 0
|
||||
or 6.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -607,7 +664,9 @@
|
||||
<para>A special target unit
|
||||
that is pulled in by
|
||||
<filename>suspend.target</filename>,
|
||||
<filename>hibernate.target</filename> and <filename>hybrid-sleep.target</filename>
|
||||
<filename>hibernate.target</filename>
|
||||
and
|
||||
<filename>hybrid-sleep.target</filename>
|
||||
and may be used to hook units
|
||||
into the sleep state
|
||||
logic.</para>
|
||||
@ -621,20 +680,35 @@
|
||||
smartcard controller is
|
||||
plugged in or becomes
|
||||
available at boot.</para>
|
||||
|
||||
<para>This may be used to pull
|
||||
in printer management
|
||||
daemons dynamically when
|
||||
smartcard hardware is
|
||||
found.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>sockets.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special target unit
|
||||
that sets up all service
|
||||
sockets.</para>
|
||||
that sets up all socket
|
||||
units.(see
|
||||
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details) that shall be
|
||||
active after boot.</para>
|
||||
|
||||
<para>Services that can be
|
||||
socket-activated shall add
|
||||
Wants dependencies to this
|
||||
unit for their socket unit
|
||||
during installation.</para>
|
||||
<varname>Wants=</varname>
|
||||
dependencies to this unit for
|
||||
their socket unit during
|
||||
installation. This is best
|
||||
configured via a
|
||||
<varname>WantedBy=sockets.target</varname>
|
||||
in the socket unit's
|
||||
<literal>[Install]</literal>
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -645,6 +719,11 @@
|
||||
sound card is plugged in or
|
||||
becomes available at
|
||||
boot.</para>
|
||||
|
||||
<para>This may be used to pull
|
||||
in audio management daemons
|
||||
dynamically when printer
|
||||
hardware is found.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -710,14 +789,37 @@
|
||||
<listitem>
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
After for this target unit to
|
||||
all SysV init script service
|
||||
units with an LSB header
|
||||
referring to the
|
||||
<varname>After=</varname> for
|
||||
this target unit to all SysV
|
||||
init script service units with
|
||||
an LSB header referring to the
|
||||
<literal>$time</literal>
|
||||
facility.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>timers.target</filename></term>
|
||||
<listitem>
|
||||
<para>A special target unit
|
||||
that sets up all timer
|
||||
units (see
|
||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details) that shall be
|
||||
active after boot.</para>
|
||||
|
||||
<para>It is recommended that
|
||||
timer units installed by
|
||||
applications get pulled in via
|
||||
<varname>Wants=</varname>
|
||||
dependencies from this
|
||||
unit. This is best configured
|
||||
via
|
||||
<varname>WantedBy=timers.target</varname>
|
||||
in the timer unit's
|
||||
<literal>[Install]</literal>
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>umount.target</filename></term>
|
||||
<listitem>
|
||||
@ -788,7 +890,7 @@
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
@ -361,12 +361,12 @@ static int path_add_default_dependencies(Path *p) {
|
||||
|
||||
assert(p);
|
||||
|
||||
if (UNIT(p)->manager->running_as == SYSTEMD_SYSTEM) {
|
||||
r = unit_add_dependency_by_name(UNIT(p), UNIT_BEFORE,
|
||||
SPECIAL_BASIC_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
r = unit_add_dependency_by_name(UNIT(p), UNIT_BEFORE,
|
||||
SPECIAL_PATHS_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (UNIT(p)->manager->running_as == SYSTEMD_SYSTEM) {
|
||||
r = unit_add_two_dependencies_by_name(UNIT(p), UNIT_AFTER, UNIT_REQUIRES,
|
||||
SPECIAL_SYSINIT_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
|
@ -1148,6 +1148,16 @@ static int service_add_default_dependencies(Service *s) {
|
||||
SPECIAL_SOCKETS_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
|
||||
SPECIAL_TIMERS_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
|
||||
SPECIAL_PATHS_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
/* Second, activate normal shutdown */
|
||||
|
@ -331,11 +331,13 @@ static int socket_add_default_dependencies(Socket *s) {
|
||||
int r;
|
||||
assert(s);
|
||||
|
||||
if (UNIT(s)->manager->running_as == SYSTEMD_SYSTEM) {
|
||||
if ((r = unit_add_dependency_by_name(UNIT(s), UNIT_BEFORE, SPECIAL_SOCKETS_TARGET, NULL, true)) < 0)
|
||||
return r;
|
||||
r = unit_add_dependency_by_name(UNIT(s), UNIT_BEFORE, SPECIAL_SOCKETS_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, NULL, true)) < 0)
|
||||
if (UNIT(s)->manager->running_as == SYSTEMD_SYSTEM) {
|
||||
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,8 @@
|
||||
/* Early boot targets */
|
||||
#define SPECIAL_SYSINIT_TARGET "sysinit.target"
|
||||
#define SPECIAL_SOCKETS_TARGET "sockets.target"
|
||||
#define SPECIAL_TIMERS_TARGET "timers.target"
|
||||
#define SPECIAL_PATHS_TARGET "paths.target"
|
||||
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
|
||||
#define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
|
||||
#define SPECIAL_INITRD_FS_TARGET "initrd-fs.target"
|
||||
|
@ -96,11 +96,11 @@ static int timer_add_default_dependencies(Timer *t) {
|
||||
|
||||
assert(t);
|
||||
|
||||
if (UNIT(t)->manager->running_as == SYSTEMD_SYSTEM) {
|
||||
r = unit_add_dependency_by_name(UNIT(t), UNIT_BEFORE, SPECIAL_BASIC_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
r = unit_add_dependency_by_name(UNIT(t), UNIT_BEFORE, SPECIAL_TIMERS_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (UNIT(t)->manager->running_as == SYSTEMD_SYSTEM) {
|
||||
r = unit_add_two_dependencies_by_name(UNIT(t), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
@ -8,6 +8,6 @@
|
||||
[Unit]
|
||||
Description=Basic System
|
||||
Documentation=man:systemd.special(7)
|
||||
Requires=sysinit.target sockets.target
|
||||
After=sysinit.target sockets.target
|
||||
Requires=sysinit.target sockets.target timers.target paths.target
|
||||
After=sysinit.target sockets.target timers.target paths.target
|
||||
RefuseManualStart=yes
|
||||
|
10
units/paths.target
Normal file
10
units/paths.target
Normal file
@ -0,0 +1,10 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
[Unit]
|
||||
Description=Paths
|
||||
Documentation=man:systemd.special(7)
|
@ -11,7 +11,7 @@ Documentation=man:systemd-ask-password-console.service(8)
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
After=plymouth-start.service
|
||||
Before=basic.target shutdown.target
|
||||
Before=paths.target shutdown.target
|
||||
ConditionPathExists=!/run/plymouth/pid
|
||||
|
||||
[Path]
|
||||
|
@ -10,7 +10,7 @@ Description=Forward Password Requests to Wall Directory Watch
|
||||
Documentation=man:systemd-ask-password-console.service(8)
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
Before=basic.target shutdown.target
|
||||
Before=paths.target shutdown.target
|
||||
|
||||
[Path]
|
||||
DirectoryNotEmpty=/run/systemd/ask-password
|
||||
|
10
units/timers.target
Normal file
10
units/timers.target
Normal file
@ -0,0 +1,10 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
[Unit]
|
||||
Description=Timers
|
||||
Documentation=man:systemd.special(7)
|
Loading…
x
Reference in New Issue
Block a user