macOS wacht regelmäßig aus dem Ruhezustand auf

Bereits vor längerer Zeit bemerkte ich, dass mein MacBook auch in geschlossenem Zustand aufwacht und aktiv wird, ohne mein Zutun. Nachdem das eine Weile so ging und ich innerhalb von 3 Tagen ohne Benutzung 100 % meines Akkus verbrauchte, machte ich mich auf die Suche nach einer Lösung.

Bemerkt hatte ich es vor allem deshalb, weil das System über meine Seafile Cloud regelmäßig Dateien synchronisierte, während ich an einem anderen MacBook auf der Arbeit saß. iStat Menus zeigte regelmäßige Aktivität alle zwei Stunden von jeweils 10–15 Minuten mit einer CPU-Auslastung von mindestens 25 %. Daher war mir schnell klar, warum der Akku auch in geschlossenem Zustand schnell zur Neige ging.

Für alle ungeduldigen: hier geht es direkt zu den Lösungen.

Den Grund des Aufwachens anzeigen

Der erste Schritt zu einer Lösung ist anzuzeigen, warum macOS aufgewacht ist, obwohl es sich eigentlich im Ruhezustand befindet. Dafür gibt es verschiedene Möglichkeiten, die ich nachfolgend aufliste und beschreibe.

Der Terminal-Befehl pmset -g log zeigt an, wann der Mac aufgewacht ist und welche Prozesse dann ausgeführt wurden. Die Ausgabe sieht dabei beispielsweise folgendermaßen aus:

2019-05-07 21:17:08 +0200 Assertions          	PID 64(powerd) TimedOut InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:44  id:0x0xd000097a9 [System: DeclUser SRPrevSleep kCPU kDisp]
2019-05-07 21:17:08 +0200 Sleep               	Entering Sleep state due to 'Sleep Service Back to Sleep':TCPKeepAlive=active Using AC (Charge:100%) 3606 secs
2019-05-07 21:17:13 +0200 Wake Requests       	[proc=mDNSResponder request=Maintenance inDelta=7200] [*proc=powerd request=ProxWakeSupport inDelta=3600]
2019-05-07 21:17:13 +0200 PM Client Acks      	Delays to Sleep notifications: [com.apple.apsd is slow(1006 ms)] [mDNSResponder is slow(5013 ms)]
2019-05-07 22:17:14 +0200 Kernel Client Acks  	Delays to Sleep notifications: [powerd is slow(5017 ms)] [UPSB driver is slow(msg: SetState to 2)(939 ms)] [UPSB driver is slow(msg: SetState to 2)(939 ms)] [AppleHPMIECS driver is slow(msg: WillChangeState to 2)(1055 ms)] [AppleHPMIECS driver is slow(msg: WillChangeState to 2)(1056 ms)]
2019-05-07 22:17:14 +0200 Assertions          	PID 181(mDNSResponder) Created MaintenanceWake "mDNSResponder:maintenance" 00:00:00  id:0x0xd000097bc [System: DeclUser BGTask SRPrevSleep kCPU kDisp]
2019-05-07 22:17:14 +0200 Assertions          	PID 181(mDNSResponder) Released MaintenanceWake "mDNSResponder:maintenance" 00:00:00  id:0x0xd000097bc [System: PrevIdle DeclUser BGTask kDisp]
2019-05-07 22:17:14 +0200 DarkWake            	DarkWake from Normal Sleep [CDN] due to RTC/SleepService: Using AC (Charge:100%) 45 secs
2019-05-07 22:17:14 +0200 HibernateStats      	hibmode=3 standbydelay=10800                                               	          rd=581 ms
2019-05-07 22:17:14 +0200 WakeTime            	WakeTime: 1.520 sec
2019-05-07 22:17:14 +0200 Kernel Client Acks  	Delays to Wake notifications: [AirPort_BrcmNIC driver is slow(msg: SetState to 2)(307 ms)] [IOBluetoothHostControllerUARTTransport driver is slow(msg: SetState to 1)(407 ms)] [UPSB driver is slow(msg: SetState to 2)(540 ms)] [UPSB driver is slow(msg: SetState to 2)(540 ms)] [AMDFramebufferVIB driver is slow(msg: SetState to 1)(319 ms)]
2019-05-07 22:17:14 +0200 Assertions          	PID 64(powerd) Created InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:00  id:0x0xd000097bf [System: DeclUser SRPrevSleep kCPU kDisp]
2019-05-07 22:17:47 +0200 Assertions          	PID 64(powerd) Created InternalPreventSleep "Assertion to change proximity monitoring state" 00:00:00  id:0x0xd000097dc [System: DeclUser SRPrevSleep kCPU kDisp]
2019-05-07 22:17:47 +0200 Assertions          	PID 64(powerd) Released InternalPreventSleep "Assertion to change proximity monitoring state" 00:00:00  id:0x0xd000097dc [System: DeclUser SRPrevSleep kCPU kDisp]
2019-05-07 22:17:59 +0200 Assertions          	PID 64(powerd) TimedOut InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:45  id:0x0xd000097bf [System: DeclUser SRPrevSleep kCPU kDisp]
2019-05-07 22:17:59 +0200 Sleep               	Entering Sleep state due to 'Sleep Service Back to Sleep':TCPKeepAlive=active Using AC (Charge:100%) 803 secs
2019-05-07 22:18:04 +0200 Wake Requests       	[*proc=mDNSResponder request=Maintenance inDelta=7200]
2019-05-07 22:18:04 +0200 PM Client Acks      	Delays to Sleep notifications: [com.apple.apsd is slow(1005 ms)] [mDNSResponder is slow(5013 ms)]

In diesem Fall wacht macOS um 22:17:14 Uhr auf. Das sieht man in Zeile 3 als „Wake Requests“. Außerdem erkennt man in Zeile 6 und 7, von welchem Dienst diese Aufwach-Anfrage kommt (Created MaintenanceWake "mDNSResponder:maintenance"). Wenn man nach diesem "mDNSResponder:maintenance" bei Google sucht, sind die Ergebnisse voll von Meldungen bezüglich des ungeplanten Aufwachens des Mac.

Gerade in älteren Artikeln und Forenbeiträgen findet man dann die Information, dass man bestimmte Plist-Dateien anpassen soll, beispielsweise die Datei com.apple.mDNSResponder.plist. Seit der Einführung der System Integrity Protection (SIP) in macOS 10.11 (El Capitan) ist das jedoch nicht mehr möglich, ohne SIP zu deaktivieren. Das sollte man allerdings nicht tun. Daher scheiden diese Lösungsansätze aus – zumal diese bereits älter sind und möglicherweise auf das jeweils aktuelle macOS nicht mehr übertragbar.

Der Terminal-Befehl log show | grep 'Wake reason' gibt darüber Aufschluss, was der genaue Grund für das Aufwachen des Macs war. Die Ausgabe sieht dabei beispielsweise folgendermaßen aus:

2019-05-07 21:17:15.283780+0200 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC (Alarm)
2019-05-07 21:17:15.283782+0200 0x74       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC (Alarm)
2019-05-07 22:17:14.428280+0200 0xf90ba3   Default     0x0                  0      0    kernel: (AppleTopCaseHIDEventDriver) [HID] [ATC] AppleDeviceManagementHIDEventService::processWakeReason Wake reason: Host (0x01)

Hier ist der Aufwachgrund: „RTC (Alarm)“. Das ist für die Lösungsfindung am Ende wichtig.

Hinweis: Die Ausgabe dieses Befehls kann einige Zeit dauern, da er sämtliche Daten der vergangenen zwei Wochen durchsucht.

Über den Terminal-Befehl pmset -g assertions kann man erkennen, welche Dienste/Prozesse den Mac aufwachen lassen dürfen (1) und welche nicht(0). Als ich mit meiner Recherche anfing, sah es so aus:

Assertion status system-wide:
   BackgroundTask                 1
   ApplePushServiceTask           0
   UserIsActive                   1
   PreventUserIdleDisplaySleep    0
   InteractivePushServiceTask     1
   PreventSystemSleep             0
   ExternalMedia                  0
   PreventUserIdleSystemSleep     1
   NetworkClientActive            0
   InternalPreventSleep           1
Listed by owning process:
   pid 108(hidd): [0x000b3aa40009a082] 00:00:00 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4295342000.3"
	Timeout will fire in 1200 secs Action=TimeoutActionRelease
   pid 339(UserEventAgent): [0x000b3aa2000ba072] 00:00:11 BackgroundTask named: "com.apple.AddressBook.ScheduledSync"
	Created for PID: 18524.
   pid 49(UserEventAgent): [0x000b3aa0000ba052] 00:00:13 BackgroundTask named: "com.apple.mds.Health check (2).0"
	Created for PID: 75.
   pid 80(backupd-helper): [0x000b3a9a000b9fca] 00:00:19 BackgroundTask named: "backupd-helper"
   pid 18524(AddressBookSourceSync): [0x000b3aa20001a071] 00:00:11 PreventUserIdleSystemSleep named: "Address Book Source Sync"
	Timeout will fire in 1789 secs Action=TimeoutActionTurnOff
   pid 86(apsd): [0x000b3aa70012a089] 00:00:06 InteractivePushServiceTask named: "com.apple.apsd-waitingformessages-push.apple.com"
	Timeout will fire in 86394 secs Action=TimeoutActionTurnOff
   pid 64(powerd): [0x000b3a9b000d9fd4] 00:00:18 InternalPreventSleep named: "com.apple.powermanagement.acwakelinger"
	Timeout will fire in 27 secs Action=TimeoutActionRelease
No kernel assertions.
Idle sleep preventers: IODisplayWrangler

Um hier möglichst viel zu deaktivieren, habe ich in den Systemeinstellungen unter Energie sparen die Funktionen „Ruhezustand beim WLAN-Netzwerkzugriff beenden“ und „Power Nap“ deaktiviert.

Systemeinstellungen Energie sparen

Außerdem habe ich, ebenfalls in den Systemeinstellungen, unter Bluetooth nach Klick auf die Schaltfläche Weitere Optionen … unten rechts die Funktion „Bluetooth-Geräten ermöglichen, den Ruhezustand des Computers zu beenden“ deaktiviert.

Bluetooth-Geräten ermöglichen, den Ruhezustand des Computers zu beenden

Unter „Listed by owning process“ im obenstehenden Log erkennt man auch, welche Prozesse aktuell den Ruhezustand verhindern würden. In meinem Fall sind das größtenteils Synchronisierungen.

Am Ende der Deaktivierungsorgie sah die Ausgabe bei mir folgendermaßen aus:

Assertion status system-wide:
   BackgroundTask                 0
   ApplePushServiceTask           0
   UserIsActive                   1
   PreventUserIdleDisplaySleep    0
   PreventSystemSleep             0
   ExternalMedia                  0
   PreventUserIdleSystemSleep     0
   NetworkClientActive            0
Listed by owning process:
   pid 108(hidd): [0x000cae9c0009923b] 00:00:00 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4295342000.3"
	Timeout will fire in 1200 secs Action=TimeoutActionRelease
No kernel assertions.
Idle sleep preventers: IODisplayWrangler

Nicht wundern: Der Prozess hidd wird dort immer zu finden sein. Dieser ist jedoch nur aktiv, während man auch den Mac auch verwendet, denn er verarbeitet Maus- und Tastatureingaben.

Wer sich mit dem Terminal nicht so gut auskennt oder eine visuelle Ansicht schöner findet, der kann zumindest die Prozesse, die den Ruhezustand verhindern, in der Aktivitätsanzeige anzeigen lassen. Dort muss man im Bereich CPU eine neue Spalte unter Darstellung > Spalten > Ruhezustand verhindern aktivieren. Dann kann nach dieser Spalte sortiert werden und man erhält alle Prozesse aufgelistet, die in diesem Moment einen Ruhezustand verhindern würden.

Aktivitätsanzeige: Spalte Ruhezustand verhindern

Lösungen

Letztendlich fand ich mehrere mögliche Lösungen. Eine in einem Thread in den Apple Communities, eine weitere auf Medium und sogar eine im größten deutschsprachigen Hackintosh-Forum. Daher habe ich sie aufgeteilt. Voraussetzung für ein Funktionieren der Lösungen ist es jedoch notwendig, dass die obengenannten Einstellungen deaktiviert sind, also bereits möglichst viele Dienste über ihre jeweilige Systemeinstellung deaktiviert wurden.

Zur Lösung bei Wake reason: ARPT (Network)
Zur Lösung bei Wake reason: RTC (Alarm)

Wake reason: ARPT (Network)

Erhält man mit dem Befehl log show | grep 'Wake reason' die Meldung, dass die „Wake reason“ von „ARPT (Network)“ kommt, dann ist das ein Problem mit dem AirPort-Dienst. Neben dem Deaktivieren von Ruhezustand bei WLAN-Netzwerkzugriffen beenden gibt es zwei weitere Lösungsansätze, damit das nicht mehr vorkommt.

1. Netzwerk-Umgebung benennen

In den Systemeinstellungen unter Netzwerk kann man direkt oben in der Mitte unterschiedliche Umgebungen angeben. Die Lösung ist hier, wenn man nur eine Umgebung hat, die „Automatisch“ heißt, eine neue Umgebung hinzuzufügen und diese auszuwählen.

Netzwerk: Umgebung umbenennen

2. MTU für das WLAN anpassen

Falls das Benennen der Netzwerk-Umgebung nicht hilft, gibt es noch die Möglichkeit, in seinen WLAN-Einstellungen unter Weitere Optionen … > Hardware bei MTU einen eigenen Wert anzugeben, nachdem man bei „Konfiguration“ den Wert „Manuell“ ausgewählt hat. Hier muss der Wert 1453 lauten.

MTU: Eigene – 1453

Wake reason: RTC (Alarm)

Diese Meldung ist so gesehen ein generischer Aufwach-Grund für macOS. In meinem Fall waren die folgenden zwei Funktionen dafür verantwortlich.

Meinen Mac suchen

Zum einen verhält sich die Funktion „Meinen Mac suchen“ nicht konsistent zu den Energieoptionen. Selbst, wenn dort die Option „Ruhezustand bei WLAN-Netzwerkzugriff beenden“ deaktiviert ist, versucht es diese Funktion dennoch, obwohl sie es bei mir in den Systemeinstellungen unter iCloud > Meinen Mac suchen. sogar erkennt:

Meinen Mac suchen – Option für Ruhezustand beenden: Aus.
Option für Ruhezustand beenden: Aus.

Bei einem Klick auf die Schaltfläche Details … erhält man dann folgende Meldung:

Du wirst diesen mac während des Ruhezustands nicht orten, schützen oder löschen können, da „Ruhezustand bei Netzwerkzugriff beenden“ deaktiviert ist.
Du wirst diesen mac während des Ruhezustands nicht orten, schützen oder löschen können, da „Ruhezustand bei Netzwerkzugriff beenden“ deaktiviert ist.

Nachdem ich diese Option nach Eingabe meines Passworts deaktiviert hatte, wachte mein MacBook sehr viel seltener mehr auf, wenn es zugeklappt war. Zu 100 % zufrieden war ich jedoch noch nicht.

Meinen Mac suchen in iCloud deaktiviert

Aufwachen durch andere Geräte verhindern

Seit macOS 10.14 Mojave gibt es in pmset eine neue Option namens proximitywake. Diese erlaubt das Aufwecken des Macs mit jedem Gerät, das in Bluetooth-Reichweite kommt und mit demselben iCloud-Konto verbunden ist. Bisher gibt es jedoch noch keine Möglichkeit auf den jeweiligen Geräten, das Aufwachen des Macs zu erzwingen, wenn es in der Nähe ist. Daher gibt es aktuell keine Nachteile, wenn man diese Option deaktiviert. Das geht über das Terminal mit folgendem Befehl:

sudo pmset -a proximitywake 0

Um es wieder zu aktivieren, genügt folgender Befehl:

sudo pmset -a proximitywake 1

Hinweis: Das Deaktivieren von proximitywake verhindert nicht das Entsperren des Macs mit der Apple Watch.

Das hilft alles nichts?

Auch wenn das alles nicht hilft, hat Apple selbst noch seine Standard-Antworten, die ich hier nicht unerwähnt lassen möchte. Eventuell können demnach auch folgende Dinge noch helfen (die sollte man allerdings erst als letztes ausprobieren):

Fazit

Es gibt einige mögliche Lösungen und das Problem ist grundsätzlich recht komplex. Dennoch hoffe ich, mit meinen gefundenen Möglichkeiten vielen geholfen zu haben. Lass mir gerne Feedback da, ob es bei dir geholfen hat oder ob du nach wie vor Probleme mit dem unerwünschten Aufwachen aus dem Ruhezustand deines Macs hast.

Ein Kommentar zu “macOS wacht regelmäßig aus dem Ruhezustand auf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.