Безопасно ли удалять /private/var/folders/* OSX при перезагрузке?

Безопасно ли удалять /private/var/folders/* OSX при перезагрузке?

Хотите очистить /private/var/folders/*при загрузке OS X,создаваяВход launchd. (Насколько мне известно, OS X не поддерживает rc.conf rc.d- все должно быть сделано путем создания записи для launchd)

Вотпохожий вопрос. К сожалению, принятый ответ неверен, потому что здесь есть демоны (особенно демоны, которые полагаются на mktempвызов), которые могут работать и все еще открывают файлы - так что, выне удалось удалитьв любое время в /private/var/folders/*. (Если быть точным, предлагаемая «перезагрузка после» в некоторой степени решает проблему, но не полностью.)

Итак, вопрос в том,: безопасно ли удалить файлы в/private/var/folders/* во время загрузки?

(Я могу себе представить, что какой-нибудь установочный скрипт, требующий перезагрузки (установка .kext или что-то в этом роде), может использовать временные папки для некоторых данных установки после перезагрузки - и не хочу заблокировать свою систему после какой-то критической установки, удалив необходимые файлы :) -это чисто мои домыслы- поэтому и спрашиваю).

  • Или единственный безопасный способ — удалить файлы старше X дней?
  • Или еще одна идея длябезопасныйноавтоматическийочистка временных файлов/каталогов в, /private/var/folders/*потому что они продолжают расти и расти... ;(

решение1

TL;DR: /var/foldersсодержит папки для кэшей и временных файлов для каждого пользователя. Вы можете получить доступ к своим собственным папкам, но не к папкам других пользователей. Удаление файлов, которые в данный момент не используются, должно быть безопасным, но удаление файлов, которые используются, вероятно, вызовет проблемы. Если вы хотите очистить их, вам следует перезагрузить компьютер после этого, чтобы свести к минимуму вероятность возникновения проблем.

Если вы ничего не сделаете, системные процессы будут периодически очищать эти папки от файлов, к которым не обращались в течение трех дней, поэтому вам не придется ничего делать, если только у вас не заканчивается свободное место на диске.

Детали

/var/foldersв основном содержит временные файлы и файлы кэша, хранящиеся на основе пользователя. Если вы посмотрите на корень /var/folders, вы не увидите многого:

$ ls -l /var/folders
total 0
drwxr-xr-x   3 root  wheel   102 Mar  2  2014 43/
drwxr-xr-x   3 root  wheel   102 Mar  2  2014 4c/
drwxr-xr-x   3 root  wheel   102 Mar  2  2014 c3/
...

Но если вы посмотрите на уровень ниже, вы увидите, что они содержат папки для каждого пользователя. Обычно каждая папка верхнего уровня (двухсимвольная) содержит одну папку пользователя, но папка "zz" содержит много системных пользователей. Например (имена пользователей изменены в целях конфиденциальности):

$ ls -l /var/folders/*
/var/folders/43:
total 0
drwxr-xr-x  6 user1  staff  204 Oct  3  2016 3lsw0k6d7vqbywvsf226nkqc0000gs/

/var/folders/4c:
total 0
drwxr-xr-x  6 user2  staff  204 Jul 15  2016 yc9pgt3j5y18vr29jcgbbyb4000101/

/var/folders/c3:
total 0
drwxr-xr-x  6 user3  staff  204 Aug 16  2016 wv6q5xlx1flgtwcs0rjlkbd4000102/

/var/folders/rp:
total 0
drwxr-xr-x  4 admin  staff  136 Jul  3  2016 qjg8tsk964scvw2510_n6yz00000gt/

/var/folders/yx:
total 0
drwxr-xr-x  4 macports  macports  136 Jul  3  2016 m3d21nm91wnd4c0k2yjk57200000gn/

/var/folders/zz:
total 0
drwxr-xr-x  6 root       wheel      204 Jul  3  2016 zyxvpxvq6csfxvn_n0000000000000/
drwxr-xr-x  3 _networkd  _networkd  102 Jul  3  2016 zyxvpxvq6csfxvn_n000003000000r/
drwxr-xr-x  3 _lp        _lp        102 Jul  3  2016 zyxvpxvq6csfxvn_n000003800000t/
...

В каждой из них вы найдете несколько волшебных папок:

$ ls -l /var/folders/4c/yc9pgt3j5y18vr29jcgbbyb4000101/
total 0
drwxr-xr-x   6 user2  staff   204 Sep  1 10:31 0/
drwx------  53 user2  staff  1802 Jul 28 18:44 C/
drwxr-xr-x   2 user2  staff    68 Jul  3  2016 Cleanup At Startup/
drwx------  83 user2  staff  2822 Sep  1 10:53 T/

Папка " C" — это кэши пользователя, содержащие то, что (до MacOS X 10.5) должно было попасть в /Library/Caches. TПапка " " — это временные файлы пользователя, заменяющие /tmpили, возможно, /var/tmp.

Я не уверен насчет двух других папок. Cleanup At Startupпуста. Я подозреваю, что ее цель — хранить файлы, которые нужны до момента перезагрузки, но должны быть очищены после нее (например, временные файлы, используемые системными обновлениями), и поэтому будут стерты после перезагрузки (или, может быть, даже выхода/входа).

Папка « 0» содержит несколько баз данных, связанных с рабочим столом, и, вероятно, предназначена для использования в качестве кэша для следующих служб:

$ ls -l /var/folders/4c/yc9pgt3j5y18vr29jcgbbyb4000101/0
total 14104
-rw-------  1 user2  staff  7221248 Sep  1 10:31 com.apple.LaunchServices-1341025.csstore
drwx------  3 user2  staff      102 Jul  3  2016 com.apple.dock.launchpad/
drwx------  3 user2  staff      102 Jul  3  2016 com.apple.notificationcenter/
drwx------  3 user2  staff      102 Sep  1 10:05 com.apple.pluginkit/

Итак, подведем итог: у каждого пользователя и виртуального пользователя есть свой собственный каталог в /var/folders. У вас будет доступ к своему, но не к другим пользователям (если только вы не используете sudoдоступ к ним как root). Они в основном содержат кэши и временные файлы. Таким образом, удаление содержимого может быть или не быть безопасным, в зависимости от того, используются файлы или нет.

Удаление файлов, когда соответствующий процесс все еще выполняется, может привести к неправильному поведению или сбою этого процесса. Удаление файлов, когда соответствующий процесс не выполняется, должно быть безопасным, но может привести к проблемам с производительностью при повторном запуске процесса (поскольку он, скорее всего, заново создаст свои кэши и временные файлы).

Похоже, что фоновый процесс запускается каждую ночь в 3:35 утра, чтобы очистить эти папки. Я не знаю конкретную природу очистки (она, похоже, не очень хорошо документирована), но то, что я читал, похоже, указывает на то, что он удалит любой файл, к которому не было доступа в течение трех дней.

решение2

Обычно /var/foldersдолжны быть надлежащим образом очищены и отрегулированы системой, когда это необходимо. Удаление некоторых вещей оттуда без знания того, что именно удаляется, может, вероятно, привести к неожиданным и крайне нежелательным результатам.

Если вы говорите об очистке этой папки вручную при перезагрузке, я думаю, это должно быть безопасно, поскольку она вряд ли будет использоваться какими-то запущенными программами (только некоторые остатки с последнего раза). Однако вы правы, всегда безопаснее удалить файлы, которые старше на 1 день, просто на всякий случай.

Я думаю, было бы неплохо узнать, как OS X очищает эту папку и как вызвать это вручную, так как это было бы лучшим решением.

Смотрите также:

решение3

Если это того стоит (то есть решайте сами :-), делать это опасно на Catalina (10.15). Я делал это на Macbook Air после обновления до Catalina. Он не перезапускался, и какая боль при восстановлении из Time Machine с плохим внутренним экраном.

У меня также был другой Macbook Air с плохим экраном (и плохая клавиатура, и плохой трекпад, но я отвлекся). Я был параноиком, потому что использую его для разработки. Поэтому вместо этого я нашел в сети другой трюк. Удерживание клавиши shift во время загрузки заставило Mac перейти в «безопасный режим». Затем Mac загрузился в безопасном режиме, и «sudo du -d 1 -h /private» подтвердил 44 ГБ. После еще одной перезагрузки обратно в обычный Mac OS X и той же команды показало 3 ГБ.

Кстати, с обычной клавиатурой это не сработало, пришлось искать клавиатуру Apple.

Гораздо безопаснее, хотя и мучительно, делать это регулярно. Я пробовал бесплатные очистители, но ни один из них не нашел эти файлы/папки. И я бы предпочел не тратить $30 - $80 на очиститель, который, вероятно, тоже их не найдет...

Связанный контент