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

systemd-tmpfiles 中文手册

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

名称

systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — 创建、删除、清理易变文件与临时文件

大纲

systemd-tmpfiles [OPTIONS...] [CONFIGFILE...]

系统单元:

systemd-tmpfiles-setup.service
systemd-tmpfiles-setup-dev.service
systemd-tmpfiles-clean.service
systemd-tmpfiles-clean.timer

用户单元:

systemd-tmpfiles-setup.service
systemd-tmpfiles-clean.service
systemd-tmpfiles-clean.timer

描述

systemd-tmpfiles 根据配置文件tmpfiles.d(5)的指引,创建、删除、清理易变文件与临时文件。

若未指定任何 CONFIGFILE 参数,则表示使用在所有标准目录中找到的全部配置文件。若使用 --replace=PATH 选项,则表示使用 CONFIGFILE 文件代替PATH 文件,否则表示仅使用 CONFIGFILE 文件。CONFIGFILE 必须是下列之一:(1)配置文件的绝对路径;(2)特殊值 "-" 表示仅从标准输入读取配置;(3)不含路径的纯文件名(basename),表示在所有tmpfiles.d(5)配置目录中搜索名称匹配的文件,并在匹配的文件中使用优先级最高的那一个。

选项

能够识别的命令行选项如下:

--create

创建或写入 所有 f, F, w, d, D, v, p, L, c, b, m 标记的文件与目录。所有 z, Z, t, T, a, A 标记的文件与目录都将被设置相应的 属主/属组、权限、安全标签。

--clean

清理 所有过期的 文件与目录

--remove

删除 D, R 标记的目录中的内容,以及 r, R 标记的目录与文件自身。

--user

执行"用户"配置,也就是用户配置目录中的 tmpfiles.d 配置文件。

--boot

也执行带有"!"标记的行。

--prefix=path

仅作用于 带有特定前缀的路径,可以多次使用此选项。

--exclude-prefix=path

忽略 带有特定前缀的路径,可以多次使用此选项。

--root=root

指定一个"根目录",包括配置文件在内的所有路径都将加上 root 前缀。

注意,此选项不会改变配置文件中设置的用户与组的解析方法。无论是否使用此选项,用户与组都始终根据主机上的用户数据库进行解析,而不会使用 任何存储在指定"根目录"下的用户数据库。

--replace=PATH

如果使用了此选项,那么必须至少指定一个 CONFIGFILE 文件。所有位于 tmpfiles.d(5) 目录中的配置文件都会被读取,但 PATH 所对应的配置文件 将会被 CONFIGFILE 文件所代替(优先级也相同)。

当软件包安装脚本运行时,属于该软件包的文件在磁盘上尚不存在,但是管理员针对该软件包定制的配置文件可能已经存在(并且拥有更高的优先级)。在这种情况下,可以使用此选项模拟替补缺失的文件。

--cat-config

显示全部配置文件的内容。在显示每个配置文件内容之前,首先以注释的形式显示该配置文件的文件名。

--no-pager

不将程序的输出内容管道(pipe)给分页程序。

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

可以同时使用 --create, --clean, --remove选项(在这种情况下,按照先清理和删除旧文件、后创建新文件的顺序操作)。例如,可以在系统启动的过程中使用下面的命令,实现在删除旧文件的同时又创建新文件:

systemd-tmpfiles --remove --create

非特权 --cleanup 操作

systemd-tmpfiles尽量避免更改目录的访问时间(atime)与修改时间(mtime),这需要 CAP_FOWNER 特权。当以非root运行时,检查目录的内容会更新目录的访问时间(atime),这可能会妨碍正确清理目录的内容。

退出状态

返回值为 0 表示成功。如果某些配置行在语法上是无效的(语法错误、缺少参数……),那么这些语法错误的行必须被忽略,但是如果没有发生其他错误,那么返回65(EX_DATAERR from/usr/include/sysexits.h)。如果某些配置行在语法上是正确的,但不能正确执行(缺少权限,在不存在的目录中创建文件、向 /sys/ 写入无效内容…),那么返回 73(EX_CANTCREAT from /usr/include/sysexits.h)。否则,返回 1 (EXIT_FAILURE from/usr/include/stdlib.h)

参见

systemd(1),tmpfiles.d(5)