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

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

/tmp 多久被删除一次?我以为它是在启动时清除的,如果不重新启动,每三天清除一次,但我找不到任何权威来源。

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

答案1

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

长答案:

MacOS Sonoma 14 对此进行了重大改变

在 Sonoma 之前,它的工作原理如下:

  1. launchd设置/usr/sbin/periodic daily为每 86400 秒(1 天)运行一次(定义见/System/Library/LaunchDaemons/com.apple.periodic-daily.plist)。旧版本的 Mac OS 将其安排在每天凌晨 3:15 运行。
  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记录在“正在删除旧的临时文件:”标题下。

在 MacOS Sonoma 中,此功能已迁移到更直接的控制方式launchd

  1. 有一个新的启动守护进程专门用于/tmp清理/System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist
  2. 使用StartCalendarInterval,它/usr/libexec/tmp_cleaner每天 0 点(即午夜)运行
  3. tmp_cleaner110.clean-tmps是一个与Sonoma 之前使用的非常相似的 shell 脚本它没有提供任何简单的方法来覆盖 3 天设置。您必须手动编辑此文件(并在 OS update0 上再次执行此操作

相关内容