First of all, we backup the original file to be safe if something going wrong or for the case we wanna revert the changes later. Open your terminal app and copy following:
To check what causes the wake up of your Mac you can use following handy command in your terminal:
syslog |grep -i "Wake reason"
So if the wakeup reason is something like “Wake reason: RTC (Alarm)” it might be the bonjour multicast feature which prevents your Mac to stay chill in sleep mode.
Backup:
sudo [ -f ~/Downloads/com.apple.discoveryd.plist ] && echo "File already there. Not overwriting it" || cp -a /System/Library/LaunchDaemons/com.apple.discoveryd.plist ~/Downloads/
To disable and prevent the wake reason, we need to edit the plist file with your prefered editor like:
sudo vi /System/Library/LaunchDaemons/com.apple.discoveryd.plist
Next move down to the key “ProgramArguments” and append this string to it:
<string>--no-multicast</string>
so it finally looks like this:
<key>ProgramArguments</key> <array> <string>/usr/libexec/discoveryd</string> <string>--udsocket</string> <string>standard</string> <string>--loglevel</string> <string>Basic</string> <string>--logclass</string> <string>Everything</string> <string>--logto</string> <string>asl</string> <string>--no-multicast</string> </array>
Be sure to have no typos or misleading characters e.g. inserted into plist file or your Mac won’t boot anymore. So better make a backup of that file before changing it.
To make sure that the plist changes are correct you can check the file syntax by entering following command:
plutil /System/Library/LaunchDaemons/com.apple.discoveryd.plist
If everything looks fine. Reboot your system, so it loads the new plist file. Now you have to re-enable Wifi and connect to your Accesspoint. After that change you will realize that the Wifi signal icon won’t show its signal strenght anymore but Wifi is still connected and seem to work fine. So a waking up Mac was a bader option for me than this wakeup fix.
One more note: Printer and NAS/NFS/Samba/AFP Shares e.g. will still reachable by it’s IP/Hostname.
So you can add it again by its IP adress/netpath without auto discovery service.
If something still went wrong or to Restore the changes to original ones you have to enter this command which copies the backup file back to its origin location which we saved by Backup task before:
sudo cp -a ~/Downloads/com.apple.discoveryd.plist /System/Library/LaunchDaemons/
Update:
I found another way to automate this task by using the MacOS internal command PlistBuddy.
So all you have to do now is executing following command in your terminal app:
sudo /usr/libexec/PlistBuddy -c "Add :ProgramArguments: string --no-multicast" /System/Library/LaunchDaemons/com.apple.discoveryd.plist
and reboot the system or run following:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
To revert the last change if something went wrong enter this command:
sudo /usr/libexec/PlistBuddy -c Revert /System/Library/LaunchDaemons/com.apple.discoveryd.plist
12/22/2014: Update — Testers wanted!
Please try my new suggestion to solve this issue and report!
I was playing around with the same issue one more time and disabled the date/time automatic sync and timezone detection on my Macbook.
Date & Time > Disable/Uncheck: Set date and time automatically
Time Zone > Disable/Uncheck: Set time zone automatically using current location
And guess what?
My Macbook did not woke up yet. Finally looks like it having the same effect than disabling Multicast but without all the flaws that came with the previous workaround.
So finally it should look like this:
and this (select your suitable Timezone if field is empty!):
Leave me a comment which solution works for you please!
Extra Bonus: I have encountered one more switch in new discoveryd.
Wondering: Why computer name changing constantly?
Here is the fix: https://ispire.me/computer-name-changing-constantly-yosemite/
Thats all folks!
HTTP/2 SSL Offloading with Hitch and Varnish Since Chrome browsers showing you insecure warning on…
File changed as we read it GlusterFS issue Recently i had trouble running Backups of…
Running multiple instances of varnish using systemd If you have not yet found a complete…
HTTP/2 SSL Offloading with Haproxy and Nginx After HTTP/2 becoming more an more prominent regarding SSL…
Get Real IP with Haproxy Tomcat Jira Confluence using x-forwarded-for Everyone knows the Problem. Get…
Review TDS2 How to backtest using tick data with Metatrader 4 in this Review TDS2…
This website uses cookies.
View Comments
This worked fine. The only problem is my AirPort Express would no longer work.
So, back to square one...
True. All services that relying on multicast advertising might not work anymore.
This change help my computer sleep but I also had to revert the changes since unfortunately a few really nice features rely on multicast including AirPlay, Wireless sync for iPhones/iPads and AppleTV to computer communications. If you don't care about these then you are ok but would not consider this a true fix.
Thank you for the solution. Hope it works.
By the way: How can i backup the file as you mentioned in your text?
Greetings from Germany.
Joerg
Hi Joerg,
if you wanna be safe, use one of the commands i described in my blog post.
Depends on which modify method you used.
After applying the command, my Mac sleeps well…
But it can't find my WLAN printer anymore. :(
I tried to revert the command using this line:
PlistBuddy -c Revert /System/Library/LaunchDaemons/com.apple.discoveryd.plist
Terminal says: "Command not found"
So, how can I restore the original file?
Hi Frank,
It's because the auto discovery service is dependent on multicast which we disabled by that task.
But: Printer and also NAS/NFS/Samba/AFP Shares should still reachable by it's IP. So you can add it again by its IP adress/Path.
I also updated the correct commands in my Blog post.
Thanks Jules!
After this patch sdmb/cifs shares didn't work anymore. Reverted to the multicast.
Thanks so much for posting! This bug made it into the released version (does Apple do ANY QA at all I sometimes wonder?) and it's a temporary fix at least.
Can you tell us, how in the heck did you make the connection from a RTC wakeup alarm to the multicast setting?
That's worked fine with me, thanks! Only my wi-fi is not working anymore. I deleted the service in Network prefpane and activated again, but still, wi-fi is not working and stays on "searching..." with no timeout :(
Hi Raffaele,
bad to hear that this doesn't work for you. What is your setup? Is it a real Mac/Macbook?
On my Macbook Pro 2008 it just worked fine and had just this Wifi display strength symptom i wrote.
Don't do this, for now.
--no-multicast
disables Bonjour services and currently breaks Wi-Fi in two ways: prevents auto-reconnection to remembered networks and it also breaks the status icon. (SystemUIServer and friends would need to be fixed.)I don’t have this behavior, exept the UI icon/Wifi signal strenght not getting displayed correctly.
Since it’s just an UI displaying and not an connection/reconnection issue on my Macbook it doesn’t really interfere me.
Any solution for connection/reconnection issue?
Thanks! That helped me fix my hostname changing randomly after upgrading to 10.10
Disabling multicast will likely cause many more problems for users. Apple really needs to patch this.
If this is a bug in OS X Yosemite, why isn't it universally present?
My new iMac Retina wakes from sleep exactly every 60 minutes.
My Mac Mini that was upgraded to Yosemite will sleep for days without waking.
If this is a bug, why doesn't it happen to all Macs running Yosemite?
It is not a good solution.
Timemachine won't work anymore (to a TimeMachine Server), also share desktop does not work automatically if you select a server in Finder.