返回介绍

systemd.path 中文手册

发布于 2020-11-08 09:27:19 字数 3540 浏览 898 评论 0 收藏 0

名称

systemd.path — 路径单元配置

大纲

path.path

描述

以".path" 为后缀的单元文件,封装了一组由 systemd 监视的文件系统路径,以支持基于路径的启动。

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

每个路径单元都必须有一个与其匹配的单元,以用于在路径发生变化时启动。匹配的单元可以通过 Unit= 选项(见下文)明确指定。若未指定,则默认是与该单元名称相同的 .service 单元(不算后缀)。例如 foo.path默认匹配 foo.service 单元。

因为在单元内部实际上使用内核的inotify(7)函数监视文件系统的变化,所以,受制于 inotify 的缺陷,只能监视本机文件系统的变化,而不能监视远程网络文件系统的变化。

自动依赖

隐含依赖

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

  • 如果一个 path 单元的文件系统路径位于另一个 mount 单元之下,那么将会自动获得对其所依赖的挂载点单元的 Requires=After= 依赖。

  • 所有 path 单元都将自动获得对 匹配单元的 Before= 依赖。

默认依赖

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

  • Before=paths.target, After=sysinit.target, Requires=sysinit.target, Conflicts=shutdown.target, Before=shutdown.target ,以确保该单元在关机前可以被干净的关闭。只有那些在系统启动早期就必须启动的路径,以及那些必须在关机流程结尾才能停止的路径才需要设置 DefaultDependencies=no

选项

路径单元文件中必须包含一个 [Path] 小节,其中包含了被监视的文件系统路径的相关信息。这里只列出仅能用于 [Path] 小节的选项(亦称"指令"或"属性"):

PathExists=, PathExistsGlob=, PathChanged=, PathModified=, DirectoryNotEmpty=

定义监视哪种类型的路径变化: PathExists= 监视指定的路径是否存在,若存在则启动匹配单元。PathExistsGlob= 监视是否存在至少一个与模式匹配的路径,若存在则启动匹配单元。PathChanged= 监视指定路径的写入句柄是否恰好被关闭,若存在写入句柄且恰好被关闭,则启动匹配单元。PathModified= 监视指定路径的最后修改时间是否发生变化,若发生变化则启动匹配单元。DirectoryNotEmpty= 监视指定的文件夹是否非空,若包含至少一个文件或子目录,则启动匹配单元。

所有这些选项的值 都必须是绝对路径。

可以多次使用这些选项 以监控多个路径。如果为某个选项指定了一个空字符串,则表示清空该选项 之前设置的所有监视路径。

如果在启动 path 单元时,指定的路径已经存在(对于 PathExists=PathExistsGlob= 来说)或者 指定的目录非空(对于 DirectoryNotEmpty= 来说),那么将会立即同时启动匹配单元。不过,对于 PathChanged=PathModified= 来说,并不遵守这个规则。

如果没有权限监视指定的路径,那么 systemd 将会 一直等待权限满足之后 才会开始监视。

Unit=

该路径单元的匹配单元,也就是被路径的变化启动的单元。参数是一个不以 ".path" 结尾的单元名。默认值是与此路径单元同名的服务单元(见上文)。建议将路径单元的名字 与被该路径启动的匹配单元的名字 保持一致 (也就是仅单元后缀名不同)。

MakeDirectory=

接受一个布尔值。设为 yes 表示如果指定的目录不存在则首先创建它然后再监视它。此选项对 PathExists= 无效。默认值为 no

DirectoryMode=

此选项指定在 MakeDirectory= 时新建目录的权限(八进制表示法)。默认值是 0755

参见

systemd(1), systemctl(1), systemd.unit(5), systemd.service(5), inotify(7), systemd.directives(7)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文