本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
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.target
与
Before=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) 以了解更多设置。