Skip to content

Guide

Mac keeps waking up from sleep? Find the wake reason

A sleeping Mac wakes up more often than you'd think, usually for a few seconds with the screen off. macOS writes down every wake and why. Here's how to read it and stop the wakes that cost you battery.

By · Updated · 7 min read

The short answer

Your Mac logs every wake. Run pmset -g log | grep -E "(DarkWake|Wake) from" and read the reason after “due to” on each line: lid, a USB-C charger, Wi-Fi network upkeep or a maintenance timer. pmset -g log | grep "Wake Requests" names the processes that asked to wake it. Then fix the setting or app behind most wakes.

On this page

Two kinds of wake

  • Wake

    What happened
    A full wake: the lid opened, a key was pressed, or you pressed the power button.
    Do you notice it?
    Yes, the screen comes on.
  • DarkWake

    What happened
    A dark wake: the Mac woke with the screen off to do background work, then went back to sleep.
    Do you notice it?
    No. You only see it in the log, or as lost battery.
What the power log calls each wake

Most dark wakes are short and routine: network upkeep, a scheduled task, a charger being connected. The ones worth fixing are the ones that happen every few minutes all night, or that turn into an hour awake.

Step 1: list the wakes and their reasons

Every wake and sleep in the power log, newest last
pmset -g log | grep -E "(DarkWake|Wake) from|Entering Sleep" | tail -40
Real lines from our test MacBook on macOS 27 (shortened)
06:59:35 DarkWake  DarkWake from Deep Idle [CDNPB] : due to NUB.SPMISw3IRQ nub-spmi0.0x02 rtc/Maintenance Using AC (Charge:100%) 53 secs
07:07:25 DarkWake  DarkWake from Deep Idle [CDNPB] : due to smc.sysState.Wake(0x70070000) USB-C_plug ATC2.USBWakeup/ Using AC (Charge:100%) 45 secs
07:23:17 DarkWake  DarkWake from Deep Idle [CDNPB] : due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty/ Using AC (Charge:100%) 45 secs
07:31:13 Wake      Wake from Deep Idle [CDNVA] : due to smc.sysState.Wake(0x70070000) lid SMC.OutboxNotEmpty/UserActivity Assertion Using BATT (Charge:100%)

Each line has the time, the kind of wake, the reason after “due to”, whether the Mac was on battery (BATT) or power (AC) with the charge, and, on dark wakes, how long it stayed awake. To see which reason comes up most, count them:

Dark wakes since the log began, counted by reason
pmset -g log | grep "DarkWake from" | grep -oE "due to [^/]+" | sort | uniq -c | sort -rn | head
Output on our test Mac (shortened)
  35 due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty
   8 due to NUB.SPMISw3IRQ nub-spmi0.0x02 rtc
   5 due to smc.sysState.Wake(0x70070000) acdetach SMC.OutboxNotEmpty
   2 due to smc.sysState.Wake(0x70070000) USB-C_plug SMC.OutboxNotEmpty

Step 2: read the reason

Apple doesn't document the reason names one by one, and they vary between Mac models. Ignore the hardware prefix (such as smc.sysState.Wake(…)) and look for the word that follows. These are the ones you'll see most:

  • lid

    What it points to
    The lid was opened.
    What to do
    Nothing. That was you.
  • UserActivity, HID Activity

    What it points to
    A key, the trackpad or a mouse.
    What to do
    Nothing, unless a mouse or keyboard wakes the Mac in a bag.
  • USB-C_plug, acattach, acdetach

    What it points to
    Something was connected to or removed from a USB-C port, usually the charger.
    What to do
    Nothing. Plugging in the charger wakes the Mac briefly.
  • wifibt

    What it points to
    Wi-Fi or Bluetooth: network upkeep, or another device reaching this Mac.
    What to do
    If it's most of your wakes, try Wake for network access off for one night (Step 4).
  • rtc, Maintenance

    What it points to
    A timer: scheduled maintenance or a process that asked to wake the Mac later.
    What to do
    Check the wake requests (Step 3).
Common wake reasons and how they read

Step 3: see which process asked to wake the Mac

Timer wakes are requested in advance. The power log records the requests, and pmset -g sched shows the ones still waiting:

Wake requests recorded in the power log
pmset -g log | grep "Wake Requests" | tail -5
One line from our test Mac (shortened)
Wake Requests  [process=mDNSResponder request=Maintenance deltaSecs=7198 info="upkeep wake"] [*process=dasd request=SleepService deltaSecs=998 info="com.apple.dasd:0:com.apple.MobileAccessoryUpdater.deviceIdleCheck"] [process=powerd request=UserWake deltaSecs=3961 info="com.apple.alarm.user-invisible-com.apple.calaccessd.travelEngine.periodicRefreshTimer,668"]
  • Each pair of brackets is one process that asked to wake the Mac, deltaSecs seconds later. On every line we read, the asterisk marked the request with the shortest delay, the one that sets the next wake.
  • mDNSResponder with “upkeep wake” is macOS's network service (Bonjour) keeping the Mac reachable on the network.
  • dasd schedules macOS background tasks; the info text names the task.
  • An app's own name here, repeating every few minutes, is a strong lead. Update the app, change its sync or check settings, or quit it before you close the lid.
Wakes that are scheduled right now
pmset -g sched
Sleeps and wakes since the Mac started
pmset -g stats

On our test Mac pmset -g stats reported a Sleep Count of 46, a Dark Wake Count of 45 and a User Wake Count of 1: dozens of dark wakes for every wake we noticed, which is typical.

Step 4: check the settings that allow wakes

The wake-related power settings
pmset -g | grep -E "womp|powernap|tcpkeepalive"

womp is Wake for network access (1 is on), powernap is Power Nap, and tcpkeepalive keeps network connections alive during sleep. Change them in System Settings, not with pmset: on a MacBook in System Settings → Battery → Options, on a desktop Mac in System Settings → Energy. Apple notes that some options aren't available on every Mac.

Step 5: fix the top reason and measure

  1. Before you close the lid, note the charge with pmset -g batt.
  2. In the morning, count last night's wakes by reason with the command in Step 1.
  3. Act on the top reason: an app's wake request (update or quit it), wifibt (Wake for network access off for one night), a mouse or accessory (unplug it before sleeping).
  4. Compare the next night: same apps open, same accessories, same power source.

If the log shows no Sleep line at all after you closed the lid, the Mac didn't wake up: it never slept. That's a sleep assertion, and the overnight battery drain guide shows how to find the app holding it.

The faster way: Sleep & Battery in iKnowMyMac

iKnowMyMac reads the same power log through its optional read-only helper and turns each night into a timeline. The Why it woke up card lists every wake in plain words, such as “Lid opened”, “Power adapter connected”, “Wi-Fi/network keepalive” and “Network upkeep (Bonjour)”, and names the app when an app is the reason.

FAQ

Questions

Something else? support@iknowmymac.com

Why does my Mac keep waking up from sleep?

Usually network upkeep (Wi-Fi or Bluetooth), a charger or accessory being connected, or a process that scheduled a wake. Each wake is in the power log with its reason; pmset -g log | grep -E "(DarkWake|Wake) from" lists them.

How do I find my Mac's wake reason?

Run pmset -g log | grep -E "(DarkWake|Wake) from" in Terminal. The reason is the text after “due to” on each line. For timer wakes, pmset -g log | grep "Wake Requests" names the process that asked.

What is DarkWake?

A wake with the screen off: the Mac does background work and goes back to sleep. Short ones are normal. See dark wake in the glossary.

Why does my Mac wake up when I plug in the charger?

Connecting power to a USB-C port wakes the Mac briefly; the log shows a reason such as USB-C_plug or acattach. It goes back to sleep on its own, so there's nothing to fix.

Does Wake for network access wake my Mac?

It lets the Mac wake when another device reaches it over the network, which shows up as wifibt or network reasons in the log. Turning it off can cut those wakes, but screen sharing, file sharing and remote access to the sleeping Mac stop working.

Know why your Mac is slow.

macOS 15 Sequoia or later · Apple silicon. A 51.4 MB native app, notarized by Apple. No account, no analytics, no telemetry.

One-time purchase · every feature · 14-day refund