-.mount¶根文件系统挂载点。
这是一个无条件启动、并在整个系统运行过程中
始终保持活动(active)状态的挂载点单元。
basic.target¶启动基本系统。
所有服务单元(明确设置了
DefaultDependencies=no 的除外)都自动隐含了
After=basic.target
依赖。
该目标一般间接包含了:所有本地挂载点 mount 单元、
/var, /tmp,
/var/tmp 挂载点 mount 单元、
swap, socket, timer, path 单元,
以及其他系统守护进程通常必需的系统初始化单元。
注意,本地挂载点 mount 单元在某些特定情形下也可以是远程网络文件系统。
该目标一般仅直接包含其他 target 单元。
在完整的系统启动过程中,
该目标只是一个
用于分隔不同启动阶段的同步节点。详见
bootup(7)
手册。
boot-complete.target¶专用于标记启动流程已经成功完成的同步节点。
(系统管理员)必须手动在此目标单元中添加对完成启动流程所必须的所有单元的
Requires= 依赖。
那些必须在启动流程已经成功完成之后才能启动的单元,
可以通过设置 Requires=boot-complete.target 达到目的。
注意,默认情况下,此目标单元并不在系统启动流程中,仅当至少有一个单元设置了
Requires=boot-complete.target 的情况下,才会被加入启动流程。
系统服务
systemd-boot-check-no-failures.service(8)
对系统进行常规健康检查,并且在
boot-complete.target 之前启动。
系统服务
systemd-bless-boot.service(8)
将启动成功的信息传递给引导管理器,并且在
boot-complete.target 之后启动。
ctrl-alt-del.target¶当在控制台上按下 Control+Alt+Del 组合键时要启动的目标单元。
通常是一个指向
reboot.target 的软连接(别名)
cryptsetup.target¶专用于安装加密块设备的
目标单元。
dbus.service¶专用于启动 D-Bus 总线守护进程的服务单元。
当此服务启动完成之后,
systemd 将会连接到此服务上注册其他各种服务。
dbus.socket¶专用于 D-Bus 系统总线的套接字单元。
所有 Type=dbus 的单元
都自动依赖于此单元。
default.target¶默认的启动目标。
通常是指向
multi-user.target 或
graphical.target 的软连接(别名)。
可用
systemd.unit= 内核引导选项
指定它。
display-manager.service¶显示管理器服务。
通常是指向 gdm.service
或类似的显示管理器服务的软连接(别名)。
emergency.target¶紧急维修模式,专用于在控制台上启动一个紧急维修 shell 。
该单元不包含任何其他 service 或 mount 单元。
它仅启动一个运行交互式 shell 的最小化系统,
通常仅在其中运行一个PID=1的 systemd 进程以及一个 shell 进程。
此单元一般仅用于两种情况:(1)作为内核引导选项 systemd.unit= 的参数;
(2)某个必需的文件系统检查失败导致无法继续启动。
与此单元用途类似的 rescue.target
则会启动一些最基本的服务并且挂载所有文件系统。
内核引导选项 "systemd.unit=emergency.target"
兼容传统 SysV 风格的
"emergency" 的等价缩写。
启动到 emergency.target 在很大程度上
相当于使用 "init=/bin/sh" 内核引导选项,
不同之处在于紧急维修模式额外提供了完整的系统与服务管理功能,
从而可以启动特定的单元以继续完成未尽的启动流程。
exit.target¶专用于关闭系统或 systemd 用户实例。
对于不在容器中运行的常规系统来说,
等价于 poweroff.target ;
但亦可在容器中使用。
当 systemd 以用户实例运行并且收到
SIGTERM 或 SIGINT
信号时,将会启动该目标。
通常,
此单元间接包含
shutdown.target
单元。
final.target¶专用于关机流程尾部的目标单元。
用于容纳那些
应该在常规服务全部退出、并且所有挂载点全部卸载之后
才能停止的服务。
getty.target¶专用于包含静态配置的本地
getty 实例的目标单元。
graphical.target¶专用于启动图形化登录界面的目标单元,
其中包含了
multi-user.target 单元。
所有专用于实现图形化登录的单元的
"[Install]" 小节中,
都应该包含 WantedBy=graphical.target 指令,
以确保这些单元被添加到了
graphical.target
单元中。
hibernate.target¶专用于"休眠到硬盘"的目标单元,
其中包含了 sleep.target 单元(Requires=sleep.target 与 After=sleep.target)。
hybrid-sleep.target¶专用于同时"休眠到硬盘"以及"休眠到内存"的目标单元,
其中包含了
sleep.target 单元(Requires=sleep.target 与 After=sleep.target)。
suspend-then-hibernate.target¶先将系统"休眠到内存"一段时间,
然后再唤醒系统并将系统"休眠到硬盘"。其中包含了
sleep.target 单元(Requires=sleep.target 与 After=sleep.target)。
halt.target¶专用于关闭系统但并不切断电源的目标单元。
它与关闭系统并切断电源的
poweroff.target
单元
并不相同。
注意,如果应用程序只想关闭系统但并不切断电源(必须手动关闭电源),
那么不应该直接启动此目标,而应该使用 systemctl halt
命令(有可能还需要加上 --no-block 选项)或者直接调用
systemd(1) 的
org.freedesktop.systemd1.Manager.Halt D-Bus
方法。
init.scope¶systemd(PID=1)自身所在的 scope 单元。
该单元在系统运行期间始终保持活动(active)状态。
initrd-fs.target¶systemd-fstab-generator(3)
会自动将
Before=initrd-fs.target 添加到
sysroot-usr.mount 单元中,
以及从 /etc/fstab 中带有
x-initrd.mount 选项且不带
noauto 选项的挂载点派生的 mount 单元中。
initrd-root-device.target¶专用于 initrd 环境的目标单元,表示根文件系统设备已经可用,
但是尚未挂载。
systemd-fstab-generator(3)
与
systemd-gpt-auto-generator(3)
会在实际挂载根文件系统之前,自动设置对此单元的依赖。
initrd-root-fs.target¶systemd-fstab-generator(3)
会自动将
Before=initrd-root-fs.target 添加到
sysroot.mount 单元中。
[提示] sysroot.mount 是根据内核引导选项自动生成的单元,封装了根分区的挂载点。
kbrequest.target¶当在控制台上按下 Alt+↑ 组合键时要启动的目标单元。
因为任何能够物理接触键盘的人,
无须认证,都可以按下此组合键,
所以必须小心使用。
kexec.target¶专用于通过内核的 kexec 接口
重启整个系统。
注意,如果应用程序想要通过内核的 kexec 接口重启整个系统,
那么不应该直接启动此目标,而应该使用 systemctl kexec
命令(有可能还需要加上 --no-block 选项)或者直接调用
systemd(1) 的
org.freedesktop.systemd1.Manager.KExec D-Bus
方法。
local-fs.target¶专用于
集合本地文件系统挂载点的目标单元。
systemd-fstab-generator(3)
会自动将 Before=local-fs.target 添加到所有本地挂载点所对应的 mount 单元中。
同时,对于 /etc/fstab 中带有 auto 选项的挂载点,
也会在 local-fs.target 中自动添加
指向这些自动挂载点所对应的 mount 单元的 Wants=
依赖。
machines.target¶专用于启动所有容器与虚拟机的目标单元。
详见 systemd-nspawn@.service
手册以查看示例。
multi-user.target¶专用于启动多用户命令行环境(而非图形界面)的目标单元。
通常包含在
graphical.target 中。
所有用于实现多用户命令行环境的单元的
"[Install]" 小节中,
都应该包含 WantedBy=multi-user.target 指令,
以确保这些单元被添加到了 multi-user.target
单元中。
network-online.target¶对于那些严格要求
必须存在真实可用的网络连接的单元,
应该在其单元文件中包含
Wants=network-online.target 与
After=network-online.target 指令。
此目标单元意在包含
一个能够将执行流程一直阻塞到网络变为真实可用为止的服务单元。
具体的实现方法取决于网络管理服务所实际使用的网络管理工具。
注意,network-online.target
是一个主动单元(被功能使用者包含而不是被功能提供者包含),
它包含的服务单元可以将执行流程一直阻塞到网络变为真实可用为止。
相反,network.target
是一个被动单元(被功能提供者包含而不是被功能使用者包含),
它不会导致执行流程出现明显的阻塞。
一般来说,
network.target 是系统启动流程中的一部分,
而 network-online.target
则不是(除非确有某些单元依赖于它)。
详情参见
Running
Services After the Network is up
文档。
所有用于挂载远程网络文件系统的 mount 单元都自动包含
Wants=network-online.target 与
After=network-online.target 指令。
注意,仅向网络上其他主机提供服务的守护进程
通常并不依赖于此单元。
Wants=network-online.target 与
After=network-online.target
将被自动添加到所有引用了 "$network" 的SysV初始化脚本单元中。
注意,此单元仅用于系统启动期间。
系统启动完成之后,
此单元将不再跟踪系统的网络状态。
因此,不能将此单元用作网络连接监视器。
paths.target¶专用于包含所有应该在系统启动过程中被启动的 path 单元(参见
systemd.path(5)
手册)。
基于路径启动机制的软件包安装的 path 单元的
"[Install]" 小节中必须包含
WantedBy=paths.target 指令,
以确保这些单元被添加到了 paths.target
单元中。
poweroff.target¶专用于关闭系统并切断电源的
目标单元。
注意,如果应用程序希望关闭系统并切断电源,
那么不应该直接启动此目标,而应该使用 systemctl poweroff
命令(有可能还需要加上 --no-block 选项)或者直接调用
systemd-logind.service(8) 的
org.freedesktop.login1.Manager.PowerOff D-Bus
方法。
为了保持与SysV的兼容性,
runlevel0.target 是此单元的一个别名(软连接)。
reboot.target¶专用于重新启动系统的
目标单元。
注意,如果应用程序希望重启系统,
那么不应该直接启动此目标,而应该使用 systemctl reboot
命令(有可能还需要加上 --no-block 选项)或者直接调用
systemd-logind.service(8) 的
org.freedesktop.login1.Manager.Reboot D-Bus
方法。
为了保持与SysV的兼容性,
runlevel6.target 是此单元的一个别名(软连接)。
remote-cryptsetup.target¶与 cryptsetup.target 类似,
但专用于通过网络访问的加密块设备(也就是
crypttab(8)
中带有 _netdev 标记的加密块设备)。
remote-fs.target¶专用于集合远程文件系统挂载点的目标单元,其他与
local-fs.target 相似。
After=remote-fs.target
将被自动添加到所有引用了
"$remote_fs"
的SysV初始化脚本单元中。
rescue.target¶专用于启动基本系统(挂载所有文件系统)并打开一个救援shell的单元(也就是进入救援模式)。
系统管理员可以使用 systemctl isolate rescue.target 命令进入单用户救援模式。
在此模式下,所有文件系统都保持挂载状态,同时仅运行最基本的系统服务([译者注]除 udevd, journal 之外的其他服务都将被停止)。
注意,与此目标单元类似的 emergency.target 更加精简,既不提供已挂载的文件系统,
也不提供最基本的系统服务。相比于
multi-user.target 来说,此目标单元类似于
single-user.target
runlevel1.target 是此单元的一个别名(软连接),
这样做是为了保持与SysV的兼容性。
内核引导选项 "systemd.unit=rescue.target"
有一个兼容传统 SysV 风格的
"1" 等价缩写。
runlevel2.target, runlevel3.target, runlevel4.target, runlevel5.target¶仅用于兼容传统SysV的
目标单元,
相当于传统的 2, 3, 4, 5 运行级。
通常将 2, 3, 4 作为 multi-user.target 的别名(软连接),
而将 5 作为 graphical.target
的别名(软连接)。
shutdown.target¶专用于在关机过程中关闭所有的
服务单元。
除非明确设置了
DefaultDependencies=no ,
否则所有在关机时需要关闭的服务都隐含了
Conflicts=shutdown.target 与
Before=shutdown.target
指令。
sigpwr.target¶专用于 systemd 收到 SIGPWR 信号时启动的目标单元。
当电力发生中断时,
内核或UPS(不间断电源)守护进程将会发送此信号。
sleep.target¶专用于进入休眠状态的目标单元。
包含在 suspend.target,
hibernate.target,
hybrid-sleep.target
之中。
slices.target¶专用于包含所有在系统启动过程中被启动的 slice 单元(参见
systemd.slice(5)
手册)。该单元默认包含
system.slice 与
-.slice 单元,
并且在这些单元启动之后才能启动(见下文)。
一般不需要直接向 slices.target 中添加 slice 单元。
当某个使用 Slice= 的单元启动之后,将会自动启动指定的 slice 单元。
只应该在需要始终处于活动(active)状态的单元的
"[Install]" 小节中使用
WantedBy=slices.target 。
此时需要特别注意避免因为上级父 slice 上的自动依赖
导致的依赖循环。
sockets.target¶专用于包含所有
应该在系统启动过程中被启动的 socket 单元(参见
systemd.socket(5)
手册)。
基于套接字启动机制的软件包
安装的 socket 单元的
"[Install]" 小节中必须包含
WantedBy=sockets.target 指令,
以确保这些单元被添加到了 sockets.target
单元中。
suspend.target¶专用于"休眠到内存"的目标单元,
其中包含了 sleep.target 单元(Requires=sleep.target 与 After=sleep.target)。
swap.target¶专用于集合所有swap分区与swap文件的目标单元,
其他与 local-fs.target 相似。
sysinit.target¶所有服务单元(明确设置了 DefaultDependencies=no 的除外)都自动隐含了
Requires=sysinit.target 与
After=sysinit.target
依赖。
该单元专用于包含必要的系统初始化服务。
所有包含在该单元中的系统服务都应该明确声明
DefaultDependencies=no ,
并且手动设置所有的依赖关系
(也就是只能假设当前仅存在一个只读根文件系统)。
详见
bootup(7) 手册。
syslog.socket¶ syslog 实例应该监听的套接字单元。
所有用户空间的日志信息都可以从这个套接字中获取。
有关 syslog 整合的更多详情,
参见 Syslog
Interface 文档。
system-update.target, system-update-pre.target, system-update-cleanup.service¶专用于离线系统更新的目标单元。如果文件系统上存在 /system-update ,那么
systemd-system-update-generator(8)
将会把启动目标临时重定向到此目标。
详见
systemd.offline-updates(7) 手册。
必须在到达 system-update.target 目标之前完成更新操作,
执行更新操作的服务单元应该主动触发重启动作。
执行更新操作的主单元应该将自身的执行顺序排在
system-update-pre.target 之后,但是不应该包含它。
只在系统更新期间运行、又必须先于实际执行更新操作之前运行的服务,
应该将自身的执行顺序排在 system-update-pre.target 之前,并且必须包含它。
出于安全可靠的考量,如果更新服务未能触发系统重启,并且在到达 system-update.target 目标时,
/system-update 依然存在,那么
system-update-cleanup.service 将会删除此软连接
并重启机器。
timers.target¶专用于包含所有
应该在系统启动过程中被启动的 timer 单元(参见
systemd.timer(5)
手册)。
基于定时器启动机制的软件包安装的 timer 单元的
"[Install]" 小节中必须包含
WantedBy=timers.target 指令,
以确保这些单元被添加到了 timers.target
单元中。
umount.target¶专用于在系统关闭过程中卸载所有需要卸载的文件系统
(无论是手动挂载的还是自动挂载的)。
除非明确设置了
DefaultDependencies=no ,
否则所有 mount 单元都隐含了
Conflicts=umount.target
指令。