Hacking OS X’s Wake-On-Demand
OS X’s wake-on-demand (WOD) can be a useful service if you have:
- Multiple Macs.
- Media and/or services located on one Mac that you’d like to share on from one but not leave it on all of the time.
- An Apple Airport router.
However, if you don’t want to use WOD, Apple doesn’t provide a way to disable it without disabling wake-on-LAN. Why would you want to disable WOD? When you turn on WOD, it lets you know that your Mac will periodically wake up.

Some folks (me) have issues with their Macs not automatically sleeping. When the Mac is automatically woken, it doesn’t go back to sleep.
Disabling Wake-On-Demand
Download and install Sleepwatcher.
Create the launchd plist1 /Library/LaunchAgents/com.yourname.Sleepwatcher:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.yourname.Sleepwatcher</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/sleepwatcher</string>
<string>--sleep</string>
<string>pmset womp 1</string>
<string>--wakeup</string>
<string>pmset womp 0</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
(You might want to replace yourname with, ahem, your name.)
You don’t even have to restart your Mac. Simply enter the following command:
$ sudo launchctl load /Library/LaunchAgents/com.yourname.Sleepwatcher
If you grep for the process, you should see it:
$ ps -A | grep "sleepwatcher"
25227 ?? 0:00.67 /usr/local/sbin/sleepwatcher --sleep pmset womp 1 --wakeup pmset womp 0
Why It Works
I’m not really sure why this works. It seems that we’re enabling wake-on-LAN after the system has checked to see if wake-on-LAN is enabled to enable WOD and schedule the periodic wake-ups.