我有一个在 Raspberry Pi 上运行的 systemd 服务,它从 EEPROM 读取配置并将其转换为格式.env
。这允许其他程序稍后轻松解析配置。
我假设每次系统启动时都必须读取和解析 EEPROM 变量,并且.env
每次系统关闭时都需要删除该文件。
我的问题是把文件放在哪里.env
。我考虑过使用该/tmp
目录,但它的目的是仅在应用程序运行时文件才存在。接下来,我想到使用/run
,但从我所读到的来看,它是用于锁和 PID 的。的所有变体也是如此/var/tmp
。最后,我正在考虑将其存储起来/etc/my_app
,然后tmpfiles.d
在每次系统启动时使用例程来清理它。
该文件既可用于 systemd 例程,也可用于用户应用程序。
答案1
/run
或以前/var/run
将是最合适的位置。
Systemd 本身遵循在 中生成临时配置的模型/run
,特别是在 /run/systemd 下(这将覆盖 /lib/systemd 中的临时配置)。例如,在每次系统启动时,整个文件/etc/fstab
都会转换为 .mount 单元/run/systemd/generator
。
(实际上是 systemd 开发将其重新定位到/run来自 /var/run,它是专门为各种“运行时数据”提供一个地方 -不是只是“PID 和锁”;无论如何,systemd 甚至不使用 PID 文件。)