From e3d84721dc9bcf9008f72dae03ff0f7842d0bb4b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 25 Mar 2013 21:20:08 +0100 Subject: units: introduce new timers.target and paths.target to hook timer/path units into for boot --- man/bootup.xml | 143 +++++++++++++++------------ man/systemd.special.xml | 258 +++++++++++++++++++++++++++++++++--------------- 2 files changed, 261 insertions(+), 140 deletions(-) (limited to 'man') diff --git a/man/bootup.xml b/man/bootup.xml index 65923528d4..a596e85b70 100644 --- a/man/bootup.xml +++ b/man/bootup.xml @@ -50,18 +50,20 @@ Description - 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 + 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 dracut8 - 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 + systemd1 + for this). After the root file system is found and + mounted the initrd hands over control to the host's + system manager (such as systemd1) 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 | rescue.target - sockets.target | - | | - \_________________ | - \| + ____________________________________/|\________________________________________ + / | | | \ + | | | | | + v v | v v + (various (various | (various rescue.service + timers...) paths...) | sockets...) | + | | | | v + v v | v rescue.target + timers.target paths.target | sockets.target + | | | | + \__________________|_________________ | ___________________/ + \|/ v basic.target | - __________________________________/| emergency.service - / | | | - | | | v - v v v emergency.target - display- (various system (various system - manager.service services services) - | required for | - | graphical UIs) v - | | multi-user.target - | | | - \_______________ | _________________/ + ____________________________________/| emergency.service + / | | | + | | | v + v v v emergency.target + display- (various system (various system + manager.service services services) + | required for | + | graphical UIs) v + | | multi-user.target + | | | + \_________________ | _________________/ \|/ v - graphical.target + graphical.target Target units that are commonly used as boot targets are emphasized. These @@ -174,23 +176,41 @@ - Initrd System Manager Bootup - 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 x-initrd.mount 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. + Bootup in the Initial RAM Disk (initrd) + 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. + + The default target in the initrd is + initrd.target. The bootup process + begins identical to the system manager bootup (see + above) until it reaches + basic.target. From there, systemd + approaches the special target + initrd.target. If the root device + can be mounted at /sysroot, the + sysroot.mount unit becomes active + and initrd-root-fs.target is + reached. The service + initrd-parse-etc.service scans + /sysroot/etc/fstab for a possible + /usr mount point and additional + entries marked with the + x-initrd.mount option. All + entries found are mounted below + /sysroot, and + initrd-fs.target is reached. The + service 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. - - (identical to System Manager Bootup) - : + : (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 - + Transition to Host OS System Manager Shutdown - System shutdown also consists of various target - units with some minimal ordering structure - applied: + System shutdown with systemd also consists of + various target units with some minimal ordering + structure applied: diff --git a/man/systemd.special.xml b/man/systemd.special.xml index 67a81b639b..8a7242662d 100644 --- a/man/systemd.special.xml +++ b/man/systemd.special.xml @@ -73,6 +73,7 @@ network.target, nss-lookup.target, nss-user-lookup.target, + paths.target, poweroff.target, printer.target, reboot.target, @@ -97,6 +98,7 @@ syslog.socket, system-update.target, time-sync.target, + timers.target, umount.target @@ -116,22 +118,23 @@ basic.target A special target unit - covering early boot-up. + covering basic boot-up. 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. - Usually this should pull-in - all sockets, mount points, - swap devices and other basic + Requires= + and After= + for this target unit to all + services (except for those + with + DefaultDependencies=no). + + 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. + general purpose + daemons. @@ -139,9 +142,15 @@ This target is started automatically as soon as a - bluetooth controller is + Bluetooth controller is plugged in or becomes available at boot. + + This may be used to pull + in Bluetooth management + daemons dynamically when + Bluetooth hardware is + found. @@ -169,7 +178,7 @@ dbus.service 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 @@ A special unit for the D-Bus system bus socket. All units with - Type=dbus + Type=dbus automatically gain a dependency on this unit. @@ -198,6 +207,7 @@ multi-user.target or graphical.target. + The default unit systemd starts at bootup can be overridden with the @@ -247,8 +257,10 @@ getty.target A special target unit - that pulls in all local TTY - getty instances. + that pulls in statically + configured local TTY + getty + instances. @@ -261,11 +273,17 @@ multi-user.target. Units that are needed - for graphical login shall add - Wants dependencies for their - unit to this unit (or + for graphical logins shall add + Wants= + dependencies for their unit to + this unit (or multi-user.target) - during installation. + during installation. This is + best configured via + WantedBy=graphical.target + in the unit's + [Install] + section. @@ -290,7 +308,13 @@ halt.target A special target unit - for shutting down and halting the system. + for shutting down and halting + the system. Note that this + target is distinct from + poweroff.target + in that it generally really + just halts the system rather + than powering it down. Applications wanting to halt the system should start @@ -300,16 +324,17 @@ initrd-fs.target - systemd automatically - adds dependencies of type - Before to sysroot-usr.mount and - all mount points fround in + systemd-fstab-generator3 + automatically adds + dependencies of type + Before= to + sysroot-usr.mount + and all mount points fround in /etc/fstab that have the and mount options set. - See also systemd-fstab-generator. @@ -338,20 +363,21 @@ local-fs.target - systemd automatically + systemd-fstab-generator3 + automatically adds + dependencies of type + Before= 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 + Wants= to this target unit for those mounts listed in /etc/fstab that have the - and - - mount options set. + mount + option set. @@ -377,9 +403,15 @@ Units that are needed for a multi-user system shall - add Wants dependencies to - this unit for their unit during - installation. + add Wants= + dependencies for their unit to + this unit during + installation. This is best + configured via + WantedBy=multi-uer.target + in the unit's + [Install] + section. @@ -387,10 +419,10 @@ 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 + After= for + this target unit to all SysV + init script service units with + an LSB header referring to the $network facility. @@ -418,7 +450,8 @@ nss-user-lookup.target should be used. systemd automatically adds - dependencies of type After for + dependencies of type + After= 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. + + paths.target + + A special target unit + that sets up all path units + (see + systemd.path5 + for details) that shall be + active after boot. + + It is recommended that + path units installed by + applications get pulled in via + Wants= + dependencies from this + unit. This is best configured + via a + WantedBy=paths.target + in the path unit's + [Install] + section. + + poweroff.target @@ -463,6 +519,12 @@ printer is plugged in or becomes available at boot. + + This may be used to pull + in printer management + daemons dynamically when + printer hardware is + found. @@ -490,10 +552,10 @@ 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 + After= for + this target unit to all SysV + init script service units with + an LSB header referring to the $remote_fs facility. @@ -525,11 +587,14 @@ initrd-root-fs.target - systemd automatically - adds dependencies of type - Before to the sysroot.mount unit, - which is generated from the kernel command - line by the systemd-fstab-generator. + systemd-fstab-generator3 + automatically adds + dependencies of type + Before= to + the + sysroot.mount + unit, which is generated from + the kernel command line. @@ -538,10 +603,10 @@ 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 + After= for + this target unit to all SysV + init script service units with + an LSB header referring to the $portmap facility. @@ -574,20 +639,12 @@ Services that shall be terminated on system shutdown - shall add Conflicts + shall add Conflicts= dependencies to this unit for their service unit, which is implicitly done when DefaultDependencies=yes is set (the default). - - 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. @@ -607,7 +664,9 @@ A special target unit that is pulled in by suspend.target, - hibernate.target and hybrid-sleep.target + hibernate.target + and + hybrid-sleep.target and may be used to hook units into the sleep state logic. @@ -621,20 +680,35 @@ smartcard controller is plugged in or becomes available at boot. + + This may be used to pull + in printer management + daemons dynamically when + smartcard hardware is + found. sockets.target A special target unit - that sets up all service - sockets. + that sets up all socket + units.(see + systemd.socket5 + for details) that shall be + active after boot. Services that can be socket-activated shall add - Wants dependencies to this - unit for their socket unit - during installation. + Wants= + dependencies to this unit for + their socket unit during + installation. This is best + configured via a + WantedBy=sockets.target + in the socket unit's + [Install] + section. @@ -645,6 +719,11 @@ sound card is plugged in or becomes available at boot. + + This may be used to pull + in audio management daemons + dynamically when printer + hardware is found. @@ -710,14 +789,37 @@ 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 + After= for + this target unit to all SysV + init script service units with + an LSB header referring to the $time facility. + + timers.target + + A special target unit + that sets up all timer + units (see + systemd.timer5 + for details) that shall be + active after boot. + + It is recommended that + timer units installed by + applications get pulled in via + Wants= + dependencies from this + unit. This is best configured + via + WantedBy=timers.target + in the timer unit's + [Install] + section. + + umount.target @@ -788,7 +890,7 @@ systemd.service5, systemd.socket5, systemd.target5, - bootup7 + bootup7, systemd-fstab-generator8 -- cgit v1.2.3-54-g00ecf