当前位置: 首页 > 文档资料 > systemd 中文手册 >

systemd.target 中文手册

优质
小牛编辑
145浏览
2023-12-01

名称

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.targetBefore=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.targetsystemd-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)