После обновления до macOS Sierra я получаю уведомление о том, что «Ваш диск почти заполнен. Экономьте место, оптимизировав хранилище»:
Возможны варианты: хранить мои файлы в iCloud, автоматически удалять файлы или удалять файлы вручную:
Моя проблема/раздражение в том, что у меня есть 80 ГБ свободных 440 ГБ.
Вопрос: есть ли способ отключить это уведомление (полу)постоянно или изменить порог, который он использует для уведомления?
Решение для отключения «почти полного» и «полного» уведомления состоит в том, чтобы отключить ответственного за него демона:
launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist
или же
launchctl stop com.apple.diskspaced
В качестве альтернативы, если вы хотите, чтобы «почти полный» не появлялся так часто, вы можете снизить порог ГБ с помощью:
minFreeSpace (int) - minimal free size in GB. Default: 20
Значение по умолчанию 20 ГБ слишком велико для небольших твердотельных накопителей, и возможная ошибка приводит к тому, что предупреждение отображается каждый день, а не только один раз, поэтому в качестве обходного пути вы можете уменьшить свободное пространство до появления предупреждения, например, до 10 ГБ:
defaults write com.apple.diskspaced minFreeSpace 10
Демон считывает свои настройки только при запуске, поэтому вам необходимо перезапустить его, если у вас отключена целостность системы:
launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist
launchctl load -w /System/Library/LaunchAgents/com.apple.diskspaced.plist
В противном случае убить его:
killall diskspaced
Если вас интересуют другие настройки для этих предупреждений о диске, вы можете просмотреть некоторые из них, используя параметр справки:
/System/Library/PrivateFrameworks/StorageManagement.framework/Versions/A/Resources/diskspaced help
---
Domain: com.apple.diskspaced
Supported keys:
debugLog (BOOL) - log additional debug information. Default: NO
checkAllVolumes (BOOL) - check all volumes. Default: NO
minDiskSize (int) - minimal disk size in GB. Default: 128
minFreeSpace (int) - minimal free size in GB. Default: 20
minPurgeableSpace (int) - minimal purgeabe space size in GB. Default: 20
---
Commands: removeAllNotifications - Removes all scheduled and delivered user notificiations.
И вот парочка скрытых:
warningInterval (integer default 0)
lastWarningDate (string e.g. 2017-05-05 16:48:29 +0000)
Я не смотрел слишком внимательно, но возможно, что установка даты последнего предупреждения на дату в будущем также предотвратит отображение предупреждения.
sudo
я получаю /System/Library/LaunchAgents/com.apple.diskspaced.plist: Could not find specified service
.default
меньшее значение минимального пространства. Есть ли способ увидеть, какие значения по умолчанию вы изменили вручную, или я должен сам отслеживать что-то подобное?/System/Library/LaunchAgents/com.apple.diskspaced.plist: Could not find specified service
defaults write com.apple.diskspaced minFreeSpace [GB value]
. Или вы можете убивать демона при каждом перезапуске с помощью killall diskspaced
. Вы даже можете поместить эту команду killall в сценарий запуска. Лично я бы сделал это, а не отключал SIP.launchctl unload -w
методом и launchctl stop
методом? И как можно восстановить настройки по умолчанию (на всякий случай)?launchctl list com.apple.diskspaced
чтобы найти PID, затем kill -KILL PID
. Хотя ни одна из других команд kill не работала в High Sierra, эта работает.См.: Как получить доступ к значениям запуска демона / системным значениям по умолчанию.
В Sierra эта команда у меня не сработала:
launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist
из-за включенной защиты целостности системы , поэтому, чтобы остановить diskspaced
службу, запустите:
launchctl stop com.apple.diskspaced
Примечание. Используйте start
, чтобы начать заново или list
просмотреть подробности (например, его PID
).
Если служба перезапускается через некоторое время, попробуйте следующую команду, чтобы остановить ее:
killall -STOP diskspaced
Чтобы изменить настройки пользователя по умолчанию, вот несколько примеров команд:
defaults write com.apple.diskspaced freeSpaceWarningLevel 1
defaults write com.apple.diskspaced warningInterval 3600
defaults write com.apple.diskspaced debugLog 1
defaults write com.apple.diskspaced checkAllVolumes 0
Затем перезапустите службу:
launchctl stop com.apple.diskspaced && launchctl start com.apple.diskspaced
Чтобы увидеть загруженные настройки, запустите diskspaced
, например:
$(find /System/Library/PrivateFrameworks -name diskspaced -print -quit)
2017-08-04 18:32:27.943 diskspaced[92401:12312556] FreeSpaceWarningLevel: 1
2017-08-04 18:32:27.943 diskspaced[92401:12312556] WarningInterval: 3600
2017-08-04 18:32:27.943 diskspaced[92401:12312556] Check All Volumes: NO
Я считаю, что параметры, упомянутые @malhal , больше не существуют. Вот простая команда, чтобы проверить это:
$ grep -A6 debugLog <(strings $(find /System/Library/PrivateFrameworks -name diskspaced -print -quit))
debugLog
freeSpaceWarningLevel
FreeSpaceWarningLevel: %ld
warningInterval
WarningInterval: %ld
checkAllVolumes
Check All Volumes: %@
Проверьте журналы с помощью этой команды на наличие предупреждений:
grep com.apple.diskspaced /var/log/system.log
launchctl list com.apple.diskspaced
чтобы найти PID, затем kill -KILL PID
. Хотя ни одна из других команд kill не работала в High Sierra, эта работает.PID
в команде kill номер PID, который вы нашли с помощью команды launchctl?Я думаю, что это уведомление является ошибкой.
У меня свободно 760 ГБ на моем диске (диск емкостью 1 ТБ), и я до сих пор получаю одно и то же уведомление каждое утро после обновления до Sierra.
Я включил «Оптимизировать хранилище» (но не «Сохранить в iCloud»).
deleted
, который очищает кэши и всякий раз, когда это происходит, отправляет CACHE_DELETE_PURGEABLE_UPDATED
распределенное уведомление всем приложениям. Всякий раз, когда это уведомление отправляется, появляется уведомление «Ваш диск почти заполнен», поэтому я думаю, что это ошибка в каком-то приложении, которое прослушивает это распределенное уведомление.Включение режима «Не беспокоить» для уведомлений приведет к отключению уведомлений «Ваш диск почти заполнен». Есть и обратная сторона, так как это отключит все уведомления.
Это не поможет решить основную проблему, связанную с тем, что ваш диск слишком заполнен , если он на самом деле слишком заполнен. Кроме того, вам может потребоваться снова включить режим «Не беспокоить». Похоже, что можно оставить его включенным на все, кроме одной минуты в день, но я не уверен, что разработчики намеревались использовать режим «Не беспокоить» постоянно.
Кенорб
Зонкер в Женеве
псевдосудо
Бхав
Лиза Энн
Турбьёрн Равн Андерсен
Рэй Корен