systemd.target 中文手册
名称
systemd.target — 目标单元配置
大纲
target
.target
描述
以".target
" 为后缀的单元文件,封装了一个由 systemd 管理的启动目标,用于在启动过程中将一组单元汇聚到一个众所周知的同步点。
此类单元没有专用的配置选项。systemd.unit(5)中描述了通用于所有单元类型的配置选项(亦称"配置指令"或"单元属性"),它们位于 [Unit] 与 [Install] 小节。因为此类单元没有专用的配置选项,所以并不存在专用的 [Target] 小节。
对于被目标单元汇聚的单元来说,目标单元本身并不能提供任何额外的附加功能。目标单元的功能仅仅是通过依赖关系将一组单元汇聚在一起,形成一个同步点,并给这个同步点取一个众所周知的名称,以便用作启动目标或其他单元的依赖。目标单元非常适合用于替代传统的SysV运行级机制,特别地,出于兼容性考虑,类似 runlevel3.target
这样的目标单元,应该专用于兼容传统SysV运行级的场合。详见systemd.special(7)手册。
自动依赖
隐含依赖
target 单元没有隐含依赖。
默认依赖
除非明确设置了DefaultDependencies=no
,否则 target 单元将会自动添加下列依赖关系:
对通过
Wants=
或Requires=
汇聚的单元的After=
依赖(除非指定的单元中含有DefaultDependencies=no
)。注意,必须明确的在 target 单元文件中定义对被汇聚单元的Wants=
或Requires=
依赖。例如,如果你在 some.service 单元文件中定义了Wants=
some.target ,那么并不会自动添加上述表示先后顺序的依赖关系。Conflicts=
与shutdown.target
Before=
依赖。shutdown.target
例子
例 1. 一个简单的独立目标单元
# emergency-net.target [Unit] Description=Emergency Mode with Networking Requires=emergency.target systemd-networkd.service After=emergency.target systemd-networkd.service AllowIsolate=yes
当在 target 单元中添加对其他单元的依赖时,务必要检查这些单元是否设置了 DefaultDependencies=no
。对于服务单元来说,除非明确设置了 DefaultDependencies=no
,否则将会自动获得 Requires=sysinit.target
, After=sysinit.target
依赖。在本例中,因为 emergency.target
与 systemd-networkd.service
都明确设置了 DefaultDependencies=no
,也就是说它们都不包含对 sysinit.target
的依赖,所以,很适合将它们引用到本例的 target 单元中。
要想进入本例所设置的"带网络的紧急维修模式",可以使用 systemctlisolate emergency-net.target
命令,也可以使用systemd.unit=emergency-net.target
内核引导选项。
如果某个单元将 WantedBy=emergency-net.target
加入到[Install]
小节之中,那么在使用systemctl enable 命令启用该单元时,将会同时确保该单元在emergency-net.target
之前启动。还可以通过 systemctl add-wants 命令在无须修改单元文件的情况下,将任意单元添加为 emergency.target
的依赖。
参见
systemd(1), systemctl(1), systemd.unit(5), systemd.special(7), systemd.directives(7)