macOS Sierraにアップグレードした後、「ディスクがほぼいっぱいです。ストレージを最適化してスペースを節約します。」という通知が表示されます。
iCloudにファイルを保存するオプション、ファイルを自動的に削除するオプション、または手動でファイルを削除するオプションが表示されます。
私の問題/イライラは、440GBのボリュームに80GBの空きがあることです。
質問:この通知を(半)永続的な方法で消音する方法、または通知に使用するしきい値を変更する方法はありますか?
macOS Sierraにアップグレードした後、「ディスクがほぼいっぱいです。ストレージを最適化してスペースを節約します。」という通知が表示されます。
iCloudにファイルを保存するオプション、ファイルを自動的に削除するオプション、または手動でファイルを削除するオプションが表示されます。
私の問題/イライラは、440GBのボリュームに80GBの空きがあることです。
質問:この通知を(半)永続的な方法で消音する方法、または通知に使用するしきい値を変更する方法はありますか?
回答:
「ほぼ満杯」および「満杯」の通知を無効にするための解決策は、それを担当するデーモンを無効にすることです。
launchctl unload -w /System/Library/LaunchAgents/com.apple.diskspaced.plist
または
launchctl stop com.apple.diskspaced
または、「ほぼ満杯」が頻繁に表示されるのを防ぎたい場合は、次の方法でGBのしきい値を下げることができます。
minFreeSpace (int) - minimal free size in GB. Default: 20
デフォルトの20GBは小さなSSDには大きすぎるため、バグが発生するとアラートが1回ではなく毎日表示されるため、回避策として、アラートが表示される前に空きスペースを10GBなどに減らすことができます。
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)
あまりよく見ていませんでしたが、最後の警告日付を将来の日付に設定すると、アラートが表示されなくなる可能性があります。
default
for minスペースをより低い値に設定しました。手動で変更したデフォルトを確認する方法はありますか、それともこのようなものを自分で追跡する必要がありますか?
参照:起動デーモンの値/システムのデフォルト値にアクセスする方法
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
この通知はバグだと思います。
私のドライブ(1TBドライブ)に760GBの空き容量がありますが、Sierraにアップグレードしてから毎朝同じ通知を受け取ります。
ストレージの最適化を有効にしました(iCloudに保存しません)。
deleted
キャッシュをパージするシステムプロセスがあり、キャッシュをパージするたびに、CACHE_DELETE_PURGEABLE_UPDATED
すべてのアプリに分散通知を送信します。その通知が送信されるたびに、「ディスクがほぼいっぱいです」という通知が表示されるため、その分散通知をリッスンしている一部のアプリのバグだと思います。