临时文件

/usr/lib/tmpfiles.d//etc/tmpfiles.d/ 中的文件描述了 systemd-tmpfiles 如何创建、清理、删除临时文件和目录,这些文件和目录通常存放在 /run/tmp 中。配置文件名称为 /etc/tmpfiles.d/<program>.conf。此处的配置能覆盖 /usr/lib/tmpfiles.d/ 目录中的同名配置。

临时文件通常和服务文件同时提供,以生成守护进程需要的文件和目录。例如 Samba) 服务需要目录 /run/samba 存在并设置正确的权限位,就象这样:

  1. /usr/lib/tmpfiles.d/samba.conf
  1. D /run/samba 0755 root root

此外,临时文件还可以用来在开机时向特定文件写入某些内容。比如,要禁止系统从USB设备唤醒,利用旧的 /etc/rc.local 可以用 echo USBE > /proc/acpi/wakeup,而现在可以这么做:

  1. /etc/tmpfiles.d/disable-usb-wake.conf
  1. w /proc/acpi/wakeup - - - - USBE

详情参见systemd-tmpfiles(8)tmpfiles.d(5)

注意: 该方法不能向 /sys 中的配置文件添加参数,因为 systemd-tmpfiles-setup 有可能在相关模块加载前运行。这种情况下,需要首先通过 modinfo <模块名> 确认需要的参数,然后在 /etc/modprobe.d 目录下的配置文件#配置模块参数)中修改配置参数。另外,还可以使用 udev 规则#udev_规则),在设备就绪时设置相应属性。