mac | simples wake on lan

In der gesamten relevanten Computerwelt kann man, wenn man einen entfernt stehenden Computer bedienen will der ausgeschaltet, aber im Standby ist, das sogenannte Wake on Lan benutzen. Es gibt verschiedene Möglichkeiten einen Computer via Wake on Lan zu wecken, die meist genutzteste ist aber das Magic Packet. Aber kann das auch ein Mac? Die klare Antwort darauf lautet: Ja, aber …

Zuerst einmal: Wie geht das? In den Systemeinstellungen unter dem Punkt „Energie sparen“ findet man unter 10.7 die Checkbox „Bei Ethernet-Netzwerkzugriff aufwachen“, die man anhaken muss. In anderen OS X-Varianten heisst der Punkt leider etwas anders, aber ähnlich.

Option "Energie sparen" in den Systemeinstellungen

Option „Energie sparen“ in den Systemeinstellungen

Oder aber via Kommandozeile mit

sudo pmset -a womp 1

Damit kommen wir zum Aber in „Ja, aber …“. Man erkauft sich die Wake on Lan-Funktion beim Mac mit einem m.E. großem Manko: Alle zwei Stunden wacht der Mac einfach so auf um kurze Zeit später sich wieder schlafen zu legen. Warum das Ganze? Apple hat ab OS X 10.6 eine Funktion namens Bonjour Sleep Proxy implementiert. Alle Geräte müssen sich dann in einem zu definierenden Interval beim sogenannten Sleep Proxy Server zurück melde, damit Netzwerkveränderungen beachtet werden können. So richtig gut funktioniert das natürlich nur, wenn die gesamte Netzwerk-Kette (Also WLAN-Geräte und Router) von Apple kommt. Wenn man das alles nicht will, dann hat man standardmäßig bei OS X keine Chance und Apple hat auch nirgends dokumentiert, wie man zwar Wake on Lan anschalten, die Bonjour Sleep Proxy-Funktion aber ausschalten kann. Aber es geht!

Die Bonjour Sleep Proxy-Funktion hat Apple/BSD in den mDNSResponder eingebaut. Dieser wird durch einen sogenannten LaunchDaemon (also Systemdienst) gestartet. Um Sleep Proxy auszuschalten, muss man die Datei /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist mit

sudo nano /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

um die Option „-DisableSleepProxyClient“erweitern

< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">


    Label
    com.apple.mDNSResponder
    OnDemand
    
    UserName
    _mdnsresponder
    GroupName
    _mdnsresponder
    ProgramArguments
    
        /usr/sbin/mDNSResponder
        -launchd
        -DisableSleepProxyClient
    
    MachServices
    
        com.apple.mDNSResponder
        
    
    Sockets
    
        Listeners
        
            SockFamily
            Unix
            SockPathName
            /var/run/mDNSResponder
            SockPathMode
            438
        
    
    EnableTransactions
    

Anschliessend muss der Mac neu gestartet werden.

Wer es übrigens gleich ausprobieren will: Einen Mac bekommt man auf mehrere Arten zum Einschlafen – via Kommandozeile gibt es diese

sudo pmset sleepnow

oder aber die „brutalere“ Variante (weil sich nicht darum geschert wird, welche Programme einen automatischen Schlafmodus verhindern)

sudo osascript -e 'tell application "System Events" to sleep'

Es hat mich ziemlich viel Zeit gekostet das zu recherchieren, da genau diese Informationen nicht so zu finden waren. Die entscheidenen Hinweise habe ich aber bei Mac OSX Hints und Stuart Cheshire gefunden. Ich hoffe, die konnte dem einen oder anderem damit helfen und würde mich über Kommentare freuen.

4 Gedanken zu „mac | simples wake on lan

  1. Udo

    Hallo Michael,
    auch mich stört seit geraumer Zeit, dass mein Mac aus
    dem Sleep Modus von selber aufwacht und danach wieder einschläft. Nach einer
    Suche im Internet bin ich auf Deinen Beitrag gestoßen und habe die zusätzliche
    Zeile in die angegebene Systemdatei eingefügt. Leider ließ sich der Mac danach
    nicht mehr booten und ich musste ein Backup einspielen. Schade, dass es nicht
    geklappt hat. Woran kann das gelegen haben?
    Hier mein setup: Mac mini 2009 mit OS 10.6.8 und allen Updates.
    So bin ich vorgegangen:
    1. Im Finder für den Ordner LauchDaemons das Leserecht in Schreib-/Leserecht geändert
    2. Mit Textwrangler die zusätzliche Zeile in die Systemdatei com.apple.mDNSResponer.plist an die angegebene Stelle geschrieben und mit dem Befehl „save“ die Datei
    gespeichert.
    3. Den Mac neu gestartet.
    Da ich mit dem Terminal und den Konsolenbefehlen nicht vertraut bin, habe ich diesen kleinen „Umweg“ genommen.

    Viele Grüße
    Udo

    Antworten
    1. controlc.de Beitragsautor

      Hallo Udo,

      es könnte m.E. an einen oder mehreren Sachen liegen:

          Das Ändern der Rechte für den Ordner.

      Ich habe schon in einem anderen Zusammenhang gemerkt, dass der launchd ziemlich zickig ist, wenn man nicht die richtigen Rechte setzt. Ich würde Dir also vorschlagen mal einen zu aktivieren. Damit kannst Du dann auf der Kommandozeile direkt die Datei editieren. Der Befehl sollte dann im Terminal „su –“ lauten, dann das vergebene Passwort eingeben. Anschliessend kannst Du dann mit nano /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist die Datei editieren.

          Defekte Datei

      Es gibt vereinzelt im Netz den Hinweis, dass bei nicht korrekten Zeilenumbrüchen auch der Neustart schief geht.

          Backupfile noch vorhanden

      Apple sagt auch:

      Important: If you edited the file using emacs, you must remove the emacs backup file (the file with a tilde at the end of the name, „/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist~“) or your Mac will not start up.

      Letztendlich hat Stuart das gut zusammengefasst:

      Important: Perform this edit carefully, since if the /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist file is malformed or corrupted, it will prevent the machine from booting.

      Also, if you edited the file using emacs, you MUST remove the emacs backup file (the file with a tilde at the end of the name, /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist~) or your Mac will not start up.

      Important: Do not skip the previous check! If you do not remove the emacs backup file your Mac will not start up! If this happens you’ll have to boot your Mac from an external disk or bootable DVD (or put your Mac into Target Disk Mode and connect it to another Mac to access the filesystem) to remove the offending file from your boot volume.

      Hab keine Angst vor der Kommandozeile – sie beißt nicht :). Ich gebe zwar keine Garantie für die von mir publizierten Shell-Zeilen, aber sie machen nix böses. Ein Backup vor Veränderungen kann aber nie schaden. Ich hoffe, ich konnte Dir etwas helfen. Wenn nicht, dann melde Dich bitte noch einmal.

      Antworten
  2. Aaron

    Thanks you sooooo much for this post! It helped me a lot (along with Google Translate). I had been leaving my iMac on constantly because I couldn’t get my Mac to stay asleep and also work with DD-WRT WOL. This solved my problem, and will help save me money on electricity!

    Antworten

Schreibe einen Kommentar

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