Ist es möglich, die Internetfreigabe so zu konfigurieren, dass der Computer in den Ruhezustand versetzt wird?

9

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 pmsetInternetfreigabe 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 pidist 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.

Irae Carvalho
quelle
Meine Ausgabe an den obigen Befehl ist DenySystemSleep. Obwohl ich die Zeichenfolge gefunden habe, konnte ich sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.natdas Verhalten nicht ändern. Könnten Sie Ihre Antwort etwas erweitern?
Irae Carvalho
Sie möchten beispielsweise etwas, das das Teilen deaktiviert und dann schläft. Und noch etwas, das beim Aufwecken automatisch das Teilen aktiviert.
GEdgar
Genau! Das ist was ich brauche
Irae Carvalho

Antworten:

8

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:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Versuch es!

Dies kratzt nur an der Oberfläche dessen, was ControlPlane kann.

Gilby
quelle
Erstaunliche App! Es hat wie ein Zauber funktioniert! Vielen Dank für die ausführliche Erklärung. Außerdem habe ich überprüft, ob die App völlig kostenlos und Open Source ist. Für mich ist dies ein Plus für die Verwendung =)
Irae Carvalho
Ich kenne ControlPlane seit einiger Zeit, habe es aber nicht verwendet. Ihre Frage war ein ausgezeichneter Grund, ihre Fähigkeiten zu erkunden - danke dafür.
Gilby
+1 hier ... Mit OS X Mavericks v10.9.4und funktioniert immer noch wie ein Zauber. Danke
GVO
Scheint eine großartige Anwendung zu sein! Leider funktioniert das Umschalten der Internetfreigabe in El Capitan derzeit nicht (wahrscheinlich auch nicht in Sierra).
Winterflags
2

Wenn Sie Lion ausführen, InternetSharingwird das explizit gesperrt SystemSleep. Schauen Sie sich an:

strings /usr/libexec/InternetSharing | grep SystemSleep

Die Ausgabe dieses Befehls: DenySystemSleep ist der Beweis, InternetSharingder die Möglichkeit des Kernels, in den Ruhezustand zu wechseln, absichtlich blockiert. Es gibt eine einfache Erklärung für diesen Schutz: Nach dem InternetSharingAuslö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 InternetSharingist, wenn der Mac-Ruhezustand 4 Ereignisse in der folgenden Reihenfolge plant:

InternetSharing off
    system sleep
    system wakeup
InternetSharing on

Dies ist die von angebotene Planung ControlPlane.

Dan
quelle
Meine Ausgabe an den obigen Befehl ist DenySystemSleep. Obwohl ich die Zeichenfolge gefunden habe, konnte ich sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.natdas Verhalten nicht ändern. Könnten Sie Ihre Antwort etwas erweitern?
Irae Carvalho
1
Ich glaube, @ daniel-azuelos bedeutet zu demonstrieren, dass InternetSharing verantwortlich ist. Der von ihm vorgeschlagene Befehl durchsucht die InternetSharing-Binärdatei und findet die Zeichenfolge, die sich auf das Blockieren des Ruhezustands bezieht. Dies hilft zu bestätigen, was wahrscheinlich für die Blockierung des Schlafes verantwortlich ist, aber nicht für das Erreichen Ihres gewünschten Verhaltens.
Graham Miln
1

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.

Allan
quelle
Allan, danke für deinen Einblick. In meinem speziellen Fall nutze ich die Internetfreigabe nur aufgrund eines MBP, den ich über Thunderbolt Bridge mit meinem iMac verbinde, um den Vorteil von Ethernet zu nutzen (100 Mbit anstelle von ~ 30 Mbit Wifi). Ich verwende Internet Sharing nicht als "Router". Es wäre daher praktisch für mich, über ein Skript oder eine Automatisierung einen Weg zu finden, um die Internetfreigabe zu aktivieren / deaktivieren (oder den Ruhezustand zu erzwingen).
Winterflags
Durch die Internetfreigabe wird Ihr Mac zu einem Router - das ist die Kernfunktion der Internetfreigabe.
Allan
Ich verstehe, aber ich spreche nicht in technischen Begriffen darüber. Ich nutze die Internetfreigabe nur, wenn ich den MBP über Thunderbolt Bridge mit dem iMac verbinde. Daher ist es nicht sinnvoll, den iMac niemals in den Ruhezustand zu versetzen, unabhängig davon, ob er verbunden ist oder nicht. Suchen Sie daher nach einer Problemumgehung, möglicherweise mit Skripten.
Winterflags
1
Nun, Sie werden nicht verhindern, dass die Internetfreigabe verhindert, dass Ihr MBP in den Ruhezustand wechselt, aber wenn Sie eine "Problemumgehung" wünschen, schauen Sie hier: apple.stackexchange.com/questions/2488/…
Allan
Danke - Ich habe diese Antworten bereits ausprobiert und konnte sie nicht dazu bringen, mit El Capitan zusammenzuarbeiten (möglicherweise aufgrund von SIP), muss aber weitere Untersuchungen durchführen.
Winterflags
1

Re. ControlPlane, das funktioniert bei mir ...

Zwei Kontexte (beide identisch) Die Regeln Drei Aktionen

CharlesB
quelle
0

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önnen System 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.

zwerdlds
quelle
1
Dies ist in der Tat sehr nützlich. Ich verwende dazu <kbd> ^ </ kbd> + <kbd> ⇧ </ kbd> + <kbd> ⏏ </ kbd>. Aber es ist nicht das, was ich wünsche. Ich brauche keine Internetfreigabe, während der Computer in den Ruhezustand wechselt. Ich brauche den Computer, um wirklich zu schlafen und sogar das Teilen und das WLAN auszuschalten. Ich werde meine Frage bearbeiten, um sie zu klären.
Irae Carvalho
0

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:

Eine bessere Inaktivität löste Schlaf aus

Power Manager bietet eine Alternative. Wir bieten einen durch Inaktivität ausgelösten Schlaf. Inaktivität wird anders gemessen als Leerlaufzeit; Inaktivität ist eine einfachere Messung, die ausschließlich durch die Benutzeraktivität bestimmt wird.

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 .

Power Manager: Nach Inaktivitätsaufgabe ausschalten

Haftungsausschluss: Ich arbeite für das Unternehmen, das Power Manager entwickelt.

Graham Miln
quelle
Hat bei aktivierter Internetfreigabe bei mir nicht funktioniert. -1 für die Verschwendung einer Stunde meines Lebens.
Winterflags
Was wollten Sie erreichen und was hat bei Ihnen nicht funktioniert?
Graham Miln
Gleich wie das OP und Ihre Antwort. Ich habe Inactivity Sleep konfiguriert, in der Hoffnung, dass es bei aktivierter Internetfreigabe unter Systemeinstellungen> Freigabe den Ruhezustand erzwingen würde . Dies war nicht der Fall, aber es würde den Ruhezustand aktivieren, wenn die Internetfreigabe deaktiviert wäre.
Winterflags
1
Power Manager sendet eine Schlafanforderung an macOS. Wenn Sie Probleme mit dem Schlaf haben, wie aus der anderen Frage hervorgeht, wirken sich dieselben Schlafprobleme auch auf Schlafanforderungen aus, die von Anwendungen von Drittanbietern ausgegeben werden. Natürlich kann ich mich in meinem Verständnis Ihrer Situation irren oder einfach irren. Ich hoffe, Sie können eine Lösung finden.
Graham Miln
1
macOS wird immer in den Ruhezustand versetzt, wenn ausdrücklich nach dem Ruhezustand gefragt wird - Finder> Apple (Menü)> Ruhezustand . Nicht schlafen ist ein Verhalten, das auf Probleme mit dem Mac hindeutet.
Graham Miln