TL; DR: Internet Sharing verhindert, dass mein Mac in den Ruhezustand wechselt. Ich muss das System regelmäßig manuell in den Ruhezustand versetzen. Ich möchte die Internetfreigabe so konfigurieren, dass der Schlaf nicht mehr verhindert wird.
Ich habe einen iMac zu Hause in meinem Schlafzimmer, zu weit von meinem Router entfernt, und ich kann kein WLAN verwenden. Außerdem ist die 3G-Abdeckung hier schrecklich. Daher habe ich die Internetfreigabe aktiviert, damit ich mein iPhone / iPad über mein Router verwenden kann iMac.
Bei der Arbeit bin ich in einem Unternehmensnetzwerk und WLAN ist etwas lahm und zu restriktiv. Daher habe ich dort auch die Internetfreigabe auf meinem MacBook Pro aktiviert, damit mein iPhone interne Inhalte erreichen kann.
Das Problem ist: Wenn ich ⌘+ ⌥+ ⏏(oder > Ruhezustand) drücke, geht keiner der Computer wie gewünscht in den Ruhezustand. es sei denn, ich deaktiviere zuerst die Internetfreigabe.
Zu Hause soll der Computer schlafen, während ich schlafe (spart Strom + mehr Ruhe), und bei der Arbeit, wenn ich nach Hause gehe, soll er auch schlafen, damit ich nicht alle verbundenen Apps (Adium, Colloquy usw.) und schließen muss am nächsten Tag wieder öffnen.
Wie kann ich die pmset
Internetfreigabe konfigurieren oder so nutzen, dass ich meinen Computer in den Ruhezustand versetzen kann, ohne auf dieses Problem zu stoßen?
Hinweis: Ich habe bereits pmset
überprüft, ob es andere Gründe gab, und die Beleidigung pid
ist immer com.apple.InternetSharing
.
Bearbeiten: Mir ist klar, dass das Schlafen des Computers die Verwendung der Internetfreigabe unmöglich macht. Ich möchte, dass es vollständig schläft und die Internetfreigabe erst wieder aktiviert wird, wenn der Computer aufwacht.
quelle
DenySystemSleep
. Obwohl ich die Zeichenfolge gefunden habe, konnte ichsudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat
das Verhalten nicht ändern. Könnten Sie Ihre Antwort etwas erweitern?Antworten:
Ich habe mit ControlPlane experimentiert , um das zu erreichen, was Sie wollen. Mein vorläufiges Ergebnis ist, dass es tun wird, was Sie wollen.
ControlPlane erkennt Änderungen an Ihrem System, die als "Beweisquellen" bezeichnet werden. Änderungen werden mit 'Regeln' ausgewertet, die eine Änderung im 'Kontext' definieren. Mit jedem Kontext sind "Aktionen" verbunden.
Eine der „Beweisquellen“ ist ein Schlaf / Wach-Ereignis. Daher habe ich eine Regel so konfiguriert, dass bei einem Sleep-Ereignis (z. B. wenn Sie im Apple-Menü auf Sleep geklickt haben) der Kontext 'Sleepy Time' ausgelöst wird. Und für diesen Kontext habe ich die Aktion 'ToggleInternetSharing' zum Ausschalten verwendet.
Nachdem ich auf "Ruhezustand" geklickt habe, wird eine Benachrichtigung angezeigt, dass die Internetfreigabe deaktiviert ist und nach einer Weile (scheint für immer, aber wahrscheinlich nur 10 oder 20 Sekunden) der Mac in den Ruhezustand wechselt.
Und ich habe eine zweite Regel, nach der bei einem Weckereignis der Kontext 'Aufwachen' ausgelöst wird und dies die Aktion zum Aktivieren von 'ToggleInternetSharing' hat.
Meine Regeln und Aktionen:
Versuch es!
Dies kratzt nur an der Oberfläche dessen, was ControlPlane kann.
quelle
OS X Mavericks v10.9.4
und funktioniert immer noch wie ein Zauber. DankeWenn Sie Lion ausführen,
InternetSharing
wird das explizit gesperrtSystemSleep
. Schauen Sie sich an:Die Ausgabe dieses Befehls: DenySystemSleep ist der Beweis,
InternetSharing
der die Möglichkeit des Kernels, in den Ruhezustand zu wechseln, absichtlich blockiert. Es gibt eine einfache Erklärung für diesen Schutz: Nach demInternetSharing
Auslösen verwenden Clients dieses Mac ihn möglicherweise als Router für den Zugriff auf das Internet. Auf dieser Internetverbindung wird möglicherweise automatisch viel ausgeführt, ohne dass die Person vor dem Bildschirm davon Kenntnis hat.Diese Verbindung sollte nur vom Administrator des Systems unterbrochen werden, der sie gestartet hat, und nicht von einem automatischen Systemverhalten.
Dies ist ein sicheres Verhalten.
Daher ist die richtige Methode, um sicherzustellen, dass sie deaktiviert
InternetSharing
ist, wenn der Mac-Ruhezustand 4 Ereignisse in der folgenden Reihenfolge plant:Dies ist die von angebotene Planung
ControlPlane
.quelle
DenySystemSleep
. Obwohl ich die Zeichenfolge gefunden habe, konnte ichsudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat
das Verhalten nicht ändern. Könnten Sie Ihre Antwort etwas erweitern?Es ist nicht praktisch, einen Mac mit aktivierter Internetfreigabe in den Ruhezustand zu versetzen.
Die Internetfreigabefunktion ist die Softwareversion eines Routers: Sie fungiert als Gateway zum Internet, als DHCP-Server, als Firewall und als DNS-Weiterleitung. Es funktioniert genauso wie die Router, die Sie bei Ihrem örtlichen Händler kaufen können. und es ist kostenlos.
Es gibt jedoch einen massiven Nachteil: Wenn der Mac, der als Gateway fungiert, ausgeschaltet ist oder schläft, können die anderen Computer nicht online gehen.
Aus diesem Grund verhindert die Internetfreigabe, dass Ihr Computer in den Ruhezustand wechselt.
Aber ich kann Dateien / iTunes / Bildschirm teilen, wenn es schläft
Ja, Sie können all diese Dinge und mehr teilen. Wenn Sie jedoch auf diese Dateien zugreifen, wird Ihr Mac aktiviert . Dies wird als Wake On Demand und Bonjour Sleep Proxy bezeichnet .
Wenn Ihr Mac schläft, bleibt die Netzwerkverbindung etwas "live". Es lauscht auf die Bonjour "Pakete", um den Computer aufzuwecken. Dies wird vom Flughafengerät (dem Netzwerkadapter) selbst erledigt. nicht der Computer. Wenn das "Wake-Paket" empfangen wird, wacht der Mac auf und Sie können mit der gemeinsamen Nutzung von Ressourcen beginnen.
Bonjour 1 ist ein Null-Konfigurations-Erkennungsdienst, der Multicast-Domain Name Services (mDNS) verwendet. Hierbei handelt es sich um ein UDP 2- Protokoll (es wird gesendet und kann nicht weitergeleitet werden), bei dem es sich um einen kleinen, zustandslosen und minimal nachrichtenorientierten Transport handelt.
Grundsätzlich ist UDP (worauf Bonjour basiert) perfekt, um eine Nachricht an Ihren Computer zu senden, in der "Wake up!"
Zum Durchsuchen des Internt (verwenden Sie einen Computer hinter dem Gateway-Mac) benötigen Sie den vollständigen Protokollstapel, der auf TCP basiert . Es benötigt DHCP, NAT, Firewall usw., was bedeutet, dass alle diese Dienste hochgefahren werden müssen, bevor Clients im Internet surfen können. Dies führt zu einer hohen Latenz.
Zurück zu einem pragmatischeren Ansatz: Wenn Ihr Mac eingeschlafen wäre und als Gateway fungieren würde, würde er entweder nie einschlafen oder auf und ab gehen wie jemand mit einem schlimmen Fall von Schlaflosigkeit.
1 Bonjour ist Apples Implementierung des Zero-Configuration-Netzwerks (Zeroconf), einer Gruppe von Technologien, die Serviceerkennung, Adresszuweisung und Auflösung von Hostnamen umfasst. Bonjour lokalisiert Geräte wie Drucker, andere Computer und die Dienste, die diese Geräte in einem lokalen Netzwerk anbieten, mithilfe von mDNS-Dienstdatensätzen (Multicast Domain Name System).
2 UDP ist ein minimales nachrichtenorientiertes Transportschichtprotokoll. UDP bietet keine Garantien für das Protokoll der oberen Schicht für die Nachrichtenübermittlung, und die UDP-Schicht behält nach dem Senden keinen Status von UDP-Nachrichten bei. Es ist einfach und eignet sich für Bootstrapping oder andere Zwecke ohne vollständigen Protokollstapel, z. B. DHCP und Trivial File Transfer Protocol.
quelle
Re. ControlPlane, das funktioniert bei mir ...
quelle
Wenn die Energieverwaltungseinheit Ihres Computers das Gerät in den Energiesparmodus versetzt, wechselt es in den Energiesparmodus. Ihr durchschnittlicher ausführbarer Code auf dem Computer wird nicht auf normale Weise ausgeführt: Der Computer verfügt über genügend Strom, um den Speicher (falls erforderlich) zu aktualisieren, und über wenig anderes. Sie werden nicht in der Lage sein, Allzweck-Computing zu betreiben, während der Computer schläft.
Es gibt jedoch eine gute Alternative, die Sie sich ansehen sollten. Anstatt das gesamte Gerät zu schlafen, überprüfen Sie den Ruhezustand des Displays
System Preferences -> Energy Saver
. In meinem Anwendungsfall habe ich ein Hot-Corner-Setup (das Sie aktivieren könnenSystem Preferences -> Desktop & Screen Saver -> Screen Saver
), sodass ich beim Mittagessen, wenn ich meinen Bildschirm sperren und / oder das Display einfach in den Ruhezustand versetzen muss, nach unten gehe -linke Ecke. Funktioniert gut für mich, der Computer kommt nicht aus einer Schlafroutine zurück und alle lang laufenden Prozesse, die ich vergessen habe, werden nicht unterbrochen. In Ihrem Fall bedeutet dies, dass Ihr WLAN-Hotspot nicht gelöscht wird.quelle
Mit Power Manager können Sie Ihren Mac nach Inaktivität in den Ruhezustand versetzen. Power Manager kann Prozesse und Anwendungen außer Kraft setzen, die den Ruhezustand blockieren, einschließlich Internetfreigabe.
In der Bedienungsanleitung erfahren Sie, wie Sie dies einrichten:
Alternativ zeigt das folgende Rezept, wie Sie ein Power Manager-Ereignis erstellen, um Ihren Mac nach einer gewissen Zeit der Inaktivität in den Ruhezustand zu versetzen .
Haftungsausschluss: Ich arbeite für das Unternehmen, das Power Manager entwickelt.
quelle