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