在 macOS 中,/tmp 多久删除一次?

zek*_*kel 120 macos

/tmp 多久删除一次?我以为如果你不重启,它会清理启动时间,每三天清理一次,但我找不到任何权威来源。

我正在运行最新的 10.6。(我想我会对以前操作系统版本中这种行为的变化感兴趣。)

Dou*_*ris 151

简短回答:默认情况下,三天内未访问的文件将从 /tmp 中删除

长答案:

  1. launchd设置/usr/sbin/periodic daily为每天凌晨 3:15 运行(定义在 中/System/Library/LaunchDaemons/com.apple.periodic-daily.plist)。
  2. /usr/sbin/periodic daily在 中运行脚本/etc/periodic/daily,包括110.clean-tmps.
  3. 110.clean-tmps使用find删除文件没有被访问(使用-atime-mtime参数find中)$daily_clean_tmps_days未在列日$daily_clean_tmps_ignore
  4. 这两个变量(和其他相关变量)在/etc/periodic.conf. (从 OS 10.7 开始,有一个/etc/defaults/periodic.conf定义默认值的文件,但要覆盖这些默认值,您仍应创建/etc/periodic.conf– 请参阅 period.conf(5) 手册页。)如果您尚未修改此文件,$daily_clean_tmps_days则设置为 3。

periodic daily将其输出记录到/var/log/daily.out. 从中删除的文件/tmp记录在标题“删除旧的临时文件:”下。

  • 10.7 period.conf 中的注释已移至 /etc/defaults 。 (13认同)
  • _n.b._ 这个答案此时已有 7.5 年的历史,macOS 现在是 10.13,我使用的是 10.11。虽然简短的回答仍然是正确的(3 天),但某些细节确实发生了变化。例如,在 10.11 中,我在 `/System/Library/LaunchDaemons/com.apple.periodic-daily.plist` 中没有看到将其安排在凌晨 3:15 的行。我没有时间了解有关启动过程的更多信息,以确定如何在启动时清除 `/tmp`(根据上面@Reb.Cabin 的评论) (5认同)
  • 使用 OSX 10.14.5,可以确认 /tmp 似乎在重新启动时被清除。 (4认同)
  • 这同样适用于 $TMPDIR 吗? (2认同)
  • 说明似乎是截至 2019 年 8 月/MacOS Mojave 10.14.6 的最新版本。 (2认同)
  • 我深入研究了有关何时运行的更多详细信息(我目前使用的是 10.14.6,但最新版本的 MacOS 是 10.15.6)。正如我在 2018 年 2 月 16 日所指出的,不再计划每天在凌晨 3:15 运行它现在定义为以 86400 秒(1 天)的间隔运行。我已经分析了 `/var/log/daily.out` 中的数据,并看到它在一天中的任何时间运行。自 2020 年初以来,运行之间的平均时间约为 26.5 小时,最少 6 小时,最多 10 天以上(当我休假时)。 (2认同)