systemd.swap 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

systemd.swap — swap单元配置

大纲

swap.swap

描述

以 ".swap" 为后缀的单元文件, 封装了一个由 systemd 管理的 swap设备或swap文件。

本手册列出了所有 专用于此类单元的配置选项(亦称"配置指令"或"单元属性")。 systemd.unit(5) 中描述了通用于所有单元类型的配置选项, 它们位于 [Unit] 与 [Install] 小节。 此类单元专用的配置选项位于 [Swap] 小节。

其他相关的选项还包括: systemd.exec(5) 中的选项定义了 swapon(8) 程序的执行环境; systemd.kill(5) 中的选项 定义了进程的结束方式; systemd.resource-control(5) 中的选项 定义了进程的资源限制。

swap 单元的名称必须根据其封装的swap设备或swap文件的路径命名。例如 /dev/sda5 设备对应的单元名称必须是 dev-sda5.swap 。 有关路径名转换到单元名的细节,参见 systemd.unit(5) 手册。 注意,swap 单元不能从模版实例化而来, 也不能通过创建软连接的方法给同一个 swap 单元赋予多个别名。

自动依赖

隐含依赖

下列依赖关系是自动隐含的:

  • 所有 swap 单元都将自动获得对所依赖的底层块设备单元或挂载点单元的 BindsTo=After= 依赖 。

其他与执行环境以及资源控制有关的自动依赖关系 参见 systemd.exec(5)systemd.resource-control(5) 手册。

默认依赖

除非明确设置了 DefaultDependencies=no ,否则 swap 单元将会自动添加下列依赖关系:

  • (1)自动获得 Conflicts=umount.targetBefore=umount.target 依赖,以确保在关机前完成卸载; (2)自动获得 Before=swap.target 依赖,以确保在系统初始化完成之前完成挂载。

fstab

swap 单元既可以通过单元文件进行配置,也可以通过 /etc/fstab 文件(参见 fstab(5) 手册)进行配置。/etc/fstab 中的swap项将在每次重新加载 systemd 配置时(包括系统启动时)动态的自动转化为 swap 单元。 一般来说,/etc/fstab 文件是配置 swap 单元的首选方法,详见 systemd-fstab-generator(8) 手册。

如果某个 swap 项既配置在了 /etc/fstab 文件中,又配置在了 swap 单元中, 那么以 swap 单元为准。

可以在 /etc/fstab 中 使用一些无法被其他程序识别的 systemd 专用挂载选项, 以帮助创建 swap 单元的依赖关系。

noauto, auto

noauto 表示 不将此 swap 单元加入到 swap.target 的依赖中, 也就是不在系统启动时自动挂载(除非为了满足其他单元的依赖而被挂载)。 auto(默认值) 表示自动将此 swap 单元加入到 swap.target 的依赖中, 也就是在系统启动时自动挂载。

nofail

nofail 表示 仅在 swap.target 中对此挂载点使用 Wants= 依赖(而不是默认的 Requires=)。 也就是即使此swap项挂载失败,也不会中断系统的启动流程。

x-systemd.device-timeout=

设置等候所依赖的设备进入可用状态的最大时长, 若超时则放弃挂载。 可以使用 "ms", "s", "min", "h" 这样的时间单位后缀。 若省略后缀则表示单位是秒。

注意,此选项仅可用于 /etc/fstab 文件, 不可用于单元文件中的 Options= 选项。

x-systemd.makefs

在该设备上重建 swap 结构(格式化)。 如果此设备"非空"(已含有签名),那么将会跳过格式化操作。 因此,此选项可以安全的应用于已格式化的设备。

此选项仅可用于 /etc/fstab 文件, 不可用于单元文件中的 Options= 选项。

参见 systemd-mkswap@.service(8) 手册,以及对 wipefs(8) 的讨论(参见 systemd.mount(5) 手册)。

选项

每个 swap 单元文件都必须包含一个 [Swap] 小节, 用于包含该单元封装的swap设备或swap文件的各项信息。 可在 [Swap] 小节中使用的选项, 有许多是与其他单元共享的,详见 systemd.exec(5)systemd.kill(5) 手册。这里只列出仅能用于 [Swap] 小节的选项 (亦称"指令"或"属性"):

What=

绝对路径形式表示的swap设备节点或swap文件, 详见 swapon(8) 手册。 如果是一个swap设备节点,那么将会自动添加对此设备节点单元的依赖, 参见 systemd.device(5) 手册。 如果是一个swap文件,那么将会自动添加对此文件所属挂载点的依赖, 参见 systemd.mount(5) 手册。 这是一个必需的设置。 注意,因为可以在此选项中使用 "%" 系列替换标记, 所以百分号(%)应该使用 "%%" 表示。

Priority=

设置此swap项的优先级, 必须设为一个整数。这是一个可选的设置。 如果已经在 Options= 中使用 pri= 设置了优先级, 那么将忽略此处的设置。

Options=

一组逗号分隔的挂载选项(例如"discard"之类)。 这是一个可选的设置。 详见 swapon(8) 手册。 注意,因为可以在此选项中使用 "%" 系列替换标记, 所以百分号(%)应该使用 "%%" 表示。

TimeoutSec=

最大允许使用多长时间以完成挂载(swapon)动作。 若超时则被视为挂载失败, 并且所有当前正在运行的命令 都将被以 SIGTERM 信号终止; 若继续等待相同的时长之后命令仍未终止, 那么将使用 SIGKILL 信号强制终止(详见 KillMode= 选项[参见 systemd.kill(5) 手册])。 可以使用 "ms", "s", "min", "h" 这样的时间单位后缀。 若省略时间单位后缀则单位是秒。设为 "0" 表示永不超时。 默认值为 DefaultTimeoutStartSec= 选项的值(参见 systemd-system.conf(5) 手册)。

参见 systemd.exec(5)systemd.kill(5) 以了解更多设置。

参见

systemd(1), systemctl(1), systemd-system.conf(5), systemd.unit(5), systemd.exec(5), systemd.kill(5), systemd.resource-control(5), systemd.device(5), systemd.mount(5), swapon(8), systemd-fstab-generator(8), systemd.directives(7)