systemd.special (original) (raw)

-.mount

The root mount point, i.e. the mount unit for the / path. This unit is unconditionally active, during the entire time the system is up, as this mount point is where the basic userspace is running from.

Added in version 235.

basic.target

A special target unit covering basic boot-up.

systemd automatically adds dependency of the typeAfter= for this target unit to all services (except for those withDefaultDependencies=no).

Usually, this should pull-in all local mount points plus/var/, /tmp/ and/var/tmp/, swap devices, sockets, timers, path units and other basic initialization necessary for general purpose daemons. The mentioned mount points are special cased to allow them to be remote.

This target usually does not pull in any non-target units directly, but rather does so indirectly via other early boot targets. It is instead meant as a synchronization point for late boot services. Refer tobootup(7) for details on the targets involved.

boot-complete.target

This target is intended as generic synchronization point for services that shall determine or act on whether the boot process completed successfully. Order units that are required to succeed for a boot process to be considered successful before this unit, and add a Requires= dependency from the target unit to them. Order units that shall only run when the boot process is considered successful after the target unit and pull in the target from it, also with Requires=. Note that by default this target unit is not part of the initial boot transaction, but is supposed to be pulled in only if required by units that want to run only on successful boots.

Seesystemd-boot-check-no-failures.service(8) for a service that implements a generic system health check and orders itself beforeboot-complete.target.

Seesystemd-bless-boot.service(8) for a service that propagates boot success information to the boot loader, and orders itself afterboot-complete.target.

Added in version 240.

ctrl-alt-del.target

systemd starts this target whenever Control+Alt+Del is pressed on the console. Usually, this should be aliased (symlinked) to reboot.target.

cryptsetup.target

A target that pulls in setup services for all encrypted block devices.

veritysetup.target

A target that pulls in setup services for all verity integrity protected block devices.

Added in version 248.

dbus.service

A special unit for the D-Bus bus daemon. As soon as this service is fully started up systemd will connect to it and register its service.

dbus.socket

A special unit for the D-Bus system bus socket. All units with Type=dbus automatically gain a dependency on this unit.

default.target

The default unit systemd starts at bootup. Usually, this should be aliased (symlinked) tomulti-user.target or graphical.target. Seebootup(7) for more discussion.

The default unit systemd starts at bootup can be overridden with thesystemd.unit= kernel command line option, or more conveniently, with the short names like single, rescue, 1,3, 5, …; seesystemd(1).

For typical unit files please set "WantedBy=" to a regular target (likemulti-user.target or graphical.target), instead of default.target, since such a service will also be run on special boots like on system update, emergency boot…

display-manager.service

The display manager service. Usually, this should be aliased (symlinked) to gdm.service or a similar display manager service.

emergency.target

A special target unit that starts an emergency shell on the main console. This target does not pull in other services or mounts. It is the most minimal version of starting the system in order to acquire an interactive shell; the only processes running are usually just the system manager (PID 1) and the shell process. This unit may be used by specifying emergency on the kernel command line; it is also used when a file system check on a required file system fails and boot-up cannot continue. Compare with rescue.target, which serves a similar purpose, but also starts the most basic services and mounts all file systems.

In many ways booting into emergency.target is similar to the effect of booting with "init=/bin/sh" on the kernel command line, except that emergency mode provides you with the full system and service manager, and allows starting individual units in order to continue the boot process in steps.

Note that depending on how emergency.target is reached, the root file system might be mounted read-only or read-write (no remounting is done specially for this target). For example, the system may boot with root mounted read-only when ro is used on the kernel command line and remain this way for emergency.target, or the system may transition to emergency.target after the system has been partially booted and disks have already been remounted read-write.

exit.target

A special service unit for shutting down the system or user service manager. It is equivalent topoweroff.target on non-container systems, and also works in containers.

systemd will start this unit when it receives theSIGTERM or SIGINT signal when running as user service daemon.

Normally, this (indirectly) pulls inshutdown.target, which in turn should be conflicted by all units that want to be scheduled for shutdown when the service manager starts to exit.

Added in version 186.

factory-reset.target

A special target to trigger a factory reset.

Added in version 250.

final.target

A special target unit that is used during the shutdown logic and may be used to pull in late services after all normal services are already terminated and all mounts unmounted.

getty.target

A special target unit that pulls in statically configured local TTY getty instances.

graphical.target

A special target unit for setting up a graphical login screen. This pulls inmulti-user.target.

Units that are needed for graphical logins shall addWants= dependencies for their unit to this unit (or multi-user.target) during installation. This is best configured viaWantedBy=graphical.target in the unit's [Install] section.

hibernate.target

A special target unit for hibernating the system. This pulls in sleep.target.

hybrid-sleep.target

A special target unit for hibernating and suspending the system at the same time. This pulls insleep.target.

Added in version 196.

suspend-then-hibernate.target

A special target unit for suspending the system for a period of time, waking it and putting it into hibernate. This pulls insleep.target.

Added in version 239.

halt.target

A special target unit for shutting down and halting the system. Note that this target is distinct frompoweroff.target in that it generally really just halts the system rather than powering it down.

Applications wanting to halt the system should not start this unit directly, but should instead execute systemctl halt (possibly with the --no-block option) or callsystemd(1)'sorg.freedesktop.systemd1.Manager.Halt D-Bus method directly.

init.scope

This scope unit is where the system and service manager (PID 1) itself resides. It is active as long as the system is running.

Added in version 235.

initrd.target

This is the default target in the initrd, similar to default.target in the main system. It is used to mount the real root and transition to it. Seebootup(7) for more discussion.

Added in version 245.

initrd-fs.target

systemd-fstab-generator(8) automatically adds dependencies of type Before= tosysroot-usr.mount and all mount points found in/etc/fstab that have the x-initrd.mount mount option set and do not have the noauto mount option set. It is also indirectly ordered aftersysroot.mount. Thus, once this target is reached the/sysroot/ hierarchy is fully set up, in preparation for the transition to the host OS.

Added in version 199.

initrd-root-device.target

A special initrd target unit that is reached when the root filesystem device is available, but before it has been mounted.systemd-fstab-generator(8) andsystemd-gpt-auto-generator(8) automatically set up the appropriate dependencies to make this happen.

Added in version 230.

initrd-root-fs.target

systemd-fstab-generator(8) automatically adds dependencies of type Before= to thesysroot.mount unit, which is generated from the kernel command line'sroot= setting (or equivalent).

Added in version 199.

initrd-usr-fs.target

systemd-fstab-generator(8) automatically adds dependencies of type Before= to thesysusr-usr.mount unit, which is generated from the kernel command line'susr= switch. Services may order themselves after this target unit in order to run once the /sysusr/ hierarchy becomes available, on systems that come up initially without a root file system, but with an initialized /usr/ and need to access that before setting up the root file system to ultimately switch to. On systems whereusr= is not used this target is ordered aftersysroot.mount and thus mostly equivalent toinitrd-root-fs.target. In effect on any system once this target is reached the file system backing /usr/ is mounted, though possibly at two different locations, either below the /sysusr/ or the /sysroot/ hierarchies.

Added in version 249.

kbrequest.target

systemd starts this target whenever Alt+ArrowUp is pressed on the console. Note that any user with physical access to the machine will be able to do this, without authentication, so this should be used carefully.

kexec.target

A special target unit for shutting down and rebooting the system via kexec.

Applications wanting to reboot the system should not start this unit directly, but should instead execute systemctl kexec (possibly with the--no-block option) or callsystemd-logind(8)'sorg.freedesktop.login1.Manager.RebootWithFlags() D-Bus method directly.

Seesystemd-kexec.service(8) for further details of the operation this target pulls in.

local-fs.target

systemd-fstab-generator(8) automatically adds dependencies of typeBefore= to all mount units that refer to local mount points for this target unit. In addition, it adds dependencies of type Wants= to this target unit for those mounts listed in/etc/fstab that have theauto mount option set.

machines.target

A standard target unit for starting all the containers and other virtual machines. See systemd-nspawn@.service for an example.

Added in version 233.

multi-user.target

A special target unit for setting up a multi-user system (non-graphical). This is pulled in bygraphical.target.

Units that are needed for a multi-user system shall add Wants= dependencies for their unit to this unit during installation. This is best configured viaWantedBy=multi-user.target in the unit's [Install] section.

network-online.target

Units that strictly require a configured network connection should pull innetwork-online.target (via aWants= type dependency) and order themselves after it. This target unit is intended to pull in a service that delays further execution until the network is sufficiently set up. What precisely this requires is left to the implementation of the network managing service.

Note the distinction between this unit and network.target. This unit is an active unit (i.e. pulled in by the consumer rather than the provider of this functionality) and pulls in a service which possibly adds substantial delays to further execution. In contrast,network.target is a passive unit (i.e. pulled in by the provider of the functionality, rather than the consumer) that usually does not delay execution much. Usually,network.target is part of the boot of most systems, whilenetwork-online.target is not, except when at least one unit requires it. Also see Running Services After the Network Is Up for more information.

All mount units for remote network file systems automatically pull in this unit, and order themselves after it. Note that networking daemons that simply provide functionality to other hosts (as opposed to consume functionality of other hosts) generally do not need to pull this in.

systemd automatically adds dependencies of type Wants= andAfter= for this target unit to all SysV init script service units with an LSB header referring to the "$network" facility.

Note that this unit is only useful during the original system start-up logic. After the system has completed booting up, it will not track the online state of the system anymore. Due to this it cannot be used as a network connection monitor concept, it is purely a one-time system start-up concept.

Added in version 200.

paths.target

A special target unit that sets up all path units (seesystemd.path(5) 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 aWantedBy=paths.target in the path unit's [Install] section.

Added in version 199.

poweroff.target

A special target unit for shutting down and powering off the system.

Applications wanting to power off the system should not start this unit directly, but should instead execute systemctl poweroff (possibly with the --no-block option) or callsystemd-logind(8)'sorg.freedesktop.login1.Manager.PowerOff D-Bus method directly.

runlevel0.target is an alias for this target unit, for compatibility with SysV.

reboot.target

A special target unit for shutting down and rebooting the system.

Applications wanting to reboot the system should not start this unit directly, but should instead execute systemctl reboot (possibly with the--no-block option) or callsystemd-logind(8)'sorg.freedesktop.login1.Manager.Reboot() D-Bus method directly.

Seesystemd-reboot.service(8) for further details of the operation this target pulls in.

runlevel6.target is an alias for this target unit, for compatibility with SysV.

remote-cryptsetup.target

Similar to cryptsetup.target, but for encrypted devices which are accessed over the network. It is used forcrypttab(5) entries marked with _netdev.

Added in version 235.

remote-veritysetup.target

Similar to veritysetup.target, but for verity integrity protected devices which are accessed over the network. It is used forveritytab(5) entries marked with _netdev.

Added in version 248.

remote-fs.target

Similar to local-fs.target, but for remote mount points.

systemd automatically adds dependencies of typeAfter= for this target unit to all SysV init script service units with an LSB header referring to the "$remote_fs" facility.

rescue.target

A special target unit that pulls in the base system (including system mounts) and spawns a rescue shell. Isolate to this target in order to administer the system in single-user mode with all file systems mounted but with no services running, except for the most basic. Compare with emergency.target, which is much more reduced and does not provide the file systems or most basic services. Compare withmulti-user.target, this target could be seen assingle-user.target.

runlevel1.target is an alias for this target unit, for compatibility with SysV.

Use the "systemd.unit=rescue.target" kernel command line option to boot into this mode. A short alias for this kernel command line option is "1", for compatibility with SysV.

runlevel2.target, runlevel3.target, runlevel4.target, runlevel5.target

These are targets that are called whenever the SysV compatibility code asks for runlevel 2, 3, 4, 5, respectively. It is a good idea to make this an alias for (i.e. symlink to) graphical.target (for runlevel 5) or multi-user.target (the others).

shutdown.target

A special target unit that terminates the services on system shutdown.

Services that shall be terminated on system shutdown shall add Conflicts= andBefore= dependencies to this unit for their service unit, which is implicitly done whenDefaultDependencies=yes is set (the default).

sigpwr.target

A special target that is started when systemd receives the SIGPWR process signal, which is normally sent by the kernel or UPS daemons when power fails.

sleep.target

A special target unit that is pulled in bysuspend.target,hibernate.target andhybrid-sleep.target and may be used to hook units into the sleep state logic.

slices.target

A special target unit that sets up all slice units (seesystemd.slice(5) for details) that shall always be active after boot. By default the genericsystem.slice slice unit as well as the root slice unit-.slice are pulled in and ordered before this unit (see below).

Adding slice units to slices.target is generally not necessary. Instead, when some unit that uses Slice= is started, the specified slice will be started automatically. AddingWantedBy=slices.target lines to the [Install] section should only be done for units that need to be always active. In that case care needs to be taken to avoid creating a loop through the automatic dependencies on "parent" slices.

Added in version 229.

sockets.target

A special target unit that sets up all socket units (seesystemd.socket(5) for details) that shall be active after boot.

Services that can be socket-activated shall addWants= 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.

soft-reboot.target

A special target unit for shutting down and rebooting the userspace of the system (leaving the kernel running).

Applications wanting to reboot the system should not start this unit directly, but should instead execute systemctl soft-reboot (possibly with the--no-block option) or callsystemd-logind(8)'sorg.freedesktop.login1.Manager.RebootWithFlags() D-Bus method directly.

Seesystemd-soft-reboot.service(8) for further details of the operation this target pulls in.

Added in version 254.

storage-target-mode.target

A special target unit that can be booted into that selects the "Storage Target Mode" for the OS. In this mode all local storage disks are exposed to external systems as block devices. This invokessystemd-storagetm.service(8) which exposes all local disks as NVMe-TCP devices for access over the network. It might as well invoke other services too that make local disks available via other mechanisms.

Added in version 255.

suspend.target

A special target unit for suspending the system. This pulls in sleep.target.

swap.target

Similar to local-fs.target, but for swap partitions and swap files.

sysinit.target

systemd automatically adds dependencies of the typesRequires= and After= for this target unit to all services (except for those withDefaultDependencies=no).

This target pulls in the services required for system initialization. System services pulled in by this target should declare DefaultDependencies=no and specify all their dependencies manually, including access to anything more than a read only root filesystem. For details on the dependencies of this target, refer tobootup(7).

syslog.socket

The socket unit syslog implementations should listen on. All userspace log messages will be made available on this socket. For more information about syslog integration, please consult the Syslog Interface document.

system-update.target, system-update-pre.target, system-update-cleanup.service

A special target unit that is used for offline system updates.systemd-system-update-generator(8) will redirect the boot process to this target if /system-update or/etc/system-update exists. For more information seesystemd.offline-updates(7).

Updates should happen before the system-update.target is reached, and the services which implement them should cause the machine to reboot. The main units executing the update should order themselves aftersystem-update-pre.target but not pull it in. Services which want to run during system updates only, but before the actual system update is executed should order themselves before this unit and pull it in. As a safety measure, if this does not happen, and /system-update or/etc/system-update still exists aftersystem-update.target is reached,system-update-cleanup.service will remove the symlinks and reboot the machine.

Added in version 186.

timers.target

A special target unit that sets up all timer units (seesystemd.timer(5) 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 viaWantedBy=timers.target in the timer unit's [Install] section.

Added in version 199.

umount.target

A special target unit that unmounts all mount and automount points on system shutdown.

Mounts that shall be unmounted on system shutdown shall add Conflicts dependencies to this unit for their mount unit, which is implicitly done whenDefaultDependencies=yes is set (the default).