根据FHS-3.0,/tmp用于临时文件和/run运行时变量数据。数据输入/run必须在下次启动时删除,这不是/tmp,但程序仍然不能假设数据输入/tmp将在下一次程序启动时可用。这一切对我来说似乎很相似。
那么,两者有什么区别呢?程序应该根据哪个标准来决定是将临时数据放入/tmp还是放入/run?
根据 FHS:
程序可能有一个子目录
/run;对于使用多个运行时文件的程序,鼓励这样做。
这表明“系统程序”和“普通程序”之间的区别不是标准,程序的生命周期也不是标准(例如,长时间运行与短期运行的进程)。
尽管 FHS 中没有给出以下基本原理,/run但引入它/var是为了克服安装太晚的问题,因此需要/var/run使用肮脏的技巧才能足够早地提供。然而,现在随着/run被引入,并且考虑到它在 FHS 中的描述,似乎没有明确的理由同时拥有/run和/tmp。