9 votes

Est-il possible de configurer le partage d'Internet pour permettre à l'ordinateur de se mettre en veille ?

TL;DR : Le partage Internet empêche mon Mac de dormir. Je dois mettre le système en veille manuellement de façon régulière. Je veux un moyen de configurer le partage d'Internet pour qu'il cesse d'empêcher la mise en veille.

J'ai un iMac à la maison, dans ma chambre, trop loin de mon routeur, et je ne peux pas utiliser le sans fil. De plus, la couverture 3G est terrible ici, alors j'ai activé le partage d'Internet pour pouvoir utiliser mon iPhone/iPad connecté via mon iMac.

Au travail, je suis sur un réseau d'entreprise et le sans-fil est quelque peu boiteux et trop restrictif. J'ai donc activé le partage d'Internet sur mon MacBook Pro, afin que mon iPhone puisse accéder aux données internes.

Le problème est que : Quand je frappe + + (ou > Sleep) aucun des deux ordinateurs ne se met en veille comme souhaité, à moins que je ne désactive d'abord le partage Internet.

À la maison, je veux que l'ordinateur se mette en veille pendant que je dors (économie d'énergie + plus de silence) et au travail, lorsque je rentre chez moi, je veux qu'il se mette aussi en veille, pour ne pas avoir à fermer toutes les applications connectées (Adium, Colloquy, etc.) et à les rouvrir le lendemain.

Comment puis-je configurer pmset ou le partage d'Internet pour que je puisse mettre mon ordinateur en veille sans rencontrer ce problème ?

Note : J'ai déjà utilisé pmset pour vérifier s'il y avait d'autres raisons et si l'auteur de l'infraction pid est toujours com.apple.InternetSharing .

Edit : Je me rends compte que si l'ordinateur est endormi, il sera impossible d'utiliser le partage d'Internet. Je veux qu'il se mette complètement en veille et je veux que le partage d'Internet ne soit réactivé qu'au réveil de l'ordinateur.

0 votes

La sortie de la commande ci-dessus est la suivante DenySystemSleep . Bien que j'ai trouvé la chaîne, je n'ai pas pu utiliser sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat pour changer le comportement. Pourriez-vous développer un peu votre réponse ?

0 votes

Donc, par exemple, vous voulez quelque chose qui éteigne le partage, puis le sommeil. Et quelque chose d'autre qui, automatiquement au réveil, activera le partage.

0 votes

Exactement ! C'est ce dont j'ai besoin

8voto

user43889 Points 266

J'ai essayé d'utiliser Plan de contrôle pour obtenir ce que vous voulez. Mon résultat préliminaire est qu'il fera ce que vous voulez.

ControlPlane détecte les modifications apportées à votre système, appelées "sources de preuves". Les changements sont évalués à l'aide de "règles" qui définissent un changement de "contexte". Des "actions" sont associées à chaque contexte.

L'une des "sources de preuves" est un événement de sommeil/réveil. J'ai donc configuré une règle pour que, lors d'un événement de sommeil (par exemple, si vous avez cliqué sur "sleep" dans le menu Apple), le contexte "Sleepy Time" soit déclenché. Et pour ce contexte, j'ai utilisé l'action 'ToggleInternetSharing' sur off.

Après avoir cliqué sur "Sleep", j'obtiens une alerte indiquant que le partage d'Internet est en train d'être désactivé et, après un petit moment (qui me semble interminable mais qui ne dure probablement que 10 ou 20 secondes), le Mac se met en veille.

Et j'ai une deuxième règle pour que, lors d'un événement de réveil, le contexte "Waking Up" soit déclenché et que l'action "ToggleInternetSharing" soit activée.

Mes règles et actions :

enter image description hereenter image description here

Essayez-le !

Ceci ne fait qu'effleurer la surface de ce que ControlPlane peut faire.

0 votes

Superbe application ! Elle a fonctionné comme un charme ! Merci beaucoup pour l'explication détaillée. J'ai également vérifié que l'application est entièrement gratuite et open source. Pour moi, c'est un plus pour l'utiliser =)

0 votes

Je connais ControlPlane depuis un certain temps, mais je ne l'ai pas utilisé. Votre question est une excellente raison d'explorer ses capacités - merci pour cela.

0 votes

+1 ici... Avec OS X Mavericks v10.9.4 et fonctionne toujours comme un charme. Merci.

2voto

Rich Points 2429

Si vous utilisez Lion, InternetSharing verrouille explicitement le SystemSleep . Jetez un coup d'œil :

strings /usr/libexec/InternetSharing | grep SystemSleep

La sortie de cette commande : DenySystemSleep est la preuve que InternetSharing est bloque délibérément la possibilité pour le noyau de se mettre en veille. Il y a une explication simple à cette protection : une fois que InternetSharing est tiré, les clients de ce Mac peuvent l'utiliser comme un routeur pour accéder à Internet. Beaucoup de choses peuvent être automatiquement s'exécuter automatiquement sur cette connexion Internet sans que la personne personne devant l'écran.

Cette connexion ne doit être rompue que par l'administrateur du système qui qui l'a démarrée et non par un comportement automatique du système.

C'est un comportement sûr.

Ainsi, la méthode correcte pour garantir InternetSharing est éteint lorsque le Mac sleep est de programmer 4 événements dans l'ordre suivant :

InternetSharing off
    system sleep
    system wakeup
InternetSharing on

C'est le planning proposé par ControlPlane .

0 votes

La sortie de la commande ci-dessus est la suivante DenySystemSleep . Bien que j'aie trouvé la chaîne, je n'ai pas pu utiliser sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat pour changer le comportement. Pourriez-vous développer un peu votre réponse ?

1 votes

Je crois que @daniel-azuelos veut démontrer que l'InternetSharing est responsable. La commande qu'il suggère recherche dans le binaire d'InternetSharing et trouve la chaîne liée au blocage du sommeil. Cela aide à confirmer ce qui est susceptible d'être responsable du blocage du sommeil, mais pas pour obtenir votre comportement désiré.

1voto

Douglas Points 10417

Il n'est pas pratique de faire en sorte qu'un Mac dont le partage d'Internet est activé puisse se mettre en veille.

La fonction de partage d'Internet est la version logicielle d'un routeur : Il fait office de passerelle vers Internet, de serveur DHCP, de pare-feu et de transitaire DNS. Elle fonctionne exactement comme les routeurs que vous pouvez acheter chez votre détaillant local ; et elle est gratuite.

Cependant, il y a un inconvénient de taille : si le Mac qui fait office de passerelle est éteint ou endormi, les autres machines ne peuvent pas se connecter.

C'est pourquoi le partage d'Internet empêche votre machine de se mettre en veille.

Mais je peux partager des fichiers/iTunes/écran quand il dort.

Oui, vous pouvez partager toutes ces choses, et plus encore. Toutefois, lorsque vous voulez accéder à ces fichiers, votre Mac se réveille . C'est ce qu'on appelle Wake On Demand et Bonjour Sleep Proxy .

Lorsque votre Mac est endormi, la connexion réseau reste en quelque sorte "active" ; il est à l'écoute des "paquets" Bonjour pour réveiller l'ordinateur. Cette opération est gérée par le périphérique Airport (l'adaptateur réseau) lui-même, et non par l'ordinateur. Lorsqu'il reçoit le "paquet de réveil", le Mac se réveille et vous pouvez commencer à partager vos ressources.

Bonjour 1 est un service de découverte à configuration zéro qui utilise Services de noms de domaine multicast (mDNS), qui est un protocole UDP. 2 (il est diffusé et ne peut pas être acheminé) qui est un petit transport orienté message, sans état et minimal.

Fondamentalement, UDP (sur lequel Bonjour est basé) est parfait pour envoyer un message à votre ordinateur pour lui dire "Réveillez-vous !".

Pour naviguer sur l'Internet (utiliser un ordinateur derrière la passerelle Mac), vous avez besoin de la pile de protocoles complète qui est basée sur les éléments suivants TCP . Il aura besoin de DHCP, NAT, pare-feu, etc., ce qui signifie qu'il devra faire tourner tous ces services avant de permettre aux clients de naviguer sur le Web. Cela introduira beaucoup de latence.

Et pour en revenir à une approche plus pragmatique, si votre Mac se mettait en veille et servait de passerelle, il ne se mettrait jamais en veille ou serait en mouvement comme une personne souffrant d'insomnie.


1 Bonjour est l'implémentation par Apple du réseau à configuration zéro (zeroconf), un groupe de technologies comprenant la découverte de services, l'attribution d'adresses et la résolution de noms d'hôtes. Bonjour localise des périphériques tels que des imprimantes, d'autres ordinateurs et les services que ces périphériques offrent sur un réseau local à l'aide d'enregistrements de service du système de noms de domaine (mDNS) multidiffusion.

2 UDP est un protocole de couche de transport minimal orienté message. UDP ne fournit aucune garantie au protocole de la couche supérieure pour la livraison des messages et la couche UDP ne conserve aucun état des messages UDP une fois envoyés. C'est un protocole simple, adapté au démarrage ou à d'autres fins sans pile de protocoles complète, comme le DHCP et le Trivial File Transfer Protocol.

0 votes

Allan, merci pour ta perspicacité. Dans mon cas particulier, je n'utilise le partage d'Internet qu'à cause d'un MBP que je connecte à mon iMac via Thunderbolt Bridge pour bénéficier de l'avantage d'Ethernet (100 Mbit au lieu de ~30 Mbit en Wifi). Je n'utilise pas le Partage Internet comme un "routeur". Il serait donc pratique pour moi de trouver un moyen via script ou automatisation d'activer/désactiver le Partage Internet (ou de forcer la mise en veille).

0 votes

Partage d'Internet est transformer votre Mac en routeur - c'est la fonction principale de ce que fait le partage d'Internet.

0 votes

Je comprends, mais je n'en parle pas en termes techniques. J'utilise le partage d'Internet uniquement lorsque je connecte le MBP à l'iMac via Thunderbolt Bridge, et cela n'a donc aucun sens que l'iMac ne se mette jamais en veille, qu'il soit connecté ou non. Je cherche donc une solution de contournement, qui pourrait impliquer l'utilisation de scripts.

1voto

CharlesB Points 11

Re. ControlPlane, ceci fonctionne pour moi ...

Two Contexts (both identical) The rules Three Actions

0voto

ironfroggy Points 3496

Lorsque l'unité de gestion de l'énergie de votre ordinateur met l'appareil en veille, il entre dans un mode basse consommation. Le code exécutable moyen de l'ordinateur n'est pas exécuté de la manière habituelle : l'ordinateur conserve suffisamment d'énergie pour rafraîchir la mémoire (si nécessaire) et guère plus. Vous ne pourrez pas vous lancer dans une activité informatique à usage général pendant que l'ordinateur dort.

Cependant, il existe une bonne alternative que vous devriez examiner. Au lieu de dormir dans l'unité entière, regardez le display sleep in System Preferences -> Energy Saver . Dans mon cas d'utilisation, j'ai une configuration de coin chaud (que vous pouvez activer dans System Preferences -> Desktop & Screen Saver -> Screen Saver ) de sorte que lorsque je vais déjeuner et que j'ai besoin de verrouiller mon écran et/ou de le mettre en veille, je me déplace dans le coin inférieur gauche. Cela fonctionne bien pour moi, l'ordinateur ne revient pas d'une routine de sommeil et les processus de longue durée que j'ai oubliés ne sont pas interrompus. Dans votre cas, cela signifie que votre hotspot WiFi ne sera pas interrompu.

1 votes

This is indeed very useful, I use ^++ to do that. Mais ce n'est pas ce que je souhaite. Je n'ai pas besoin du partage d'Internet pendant que l'ordinateur dort. J'ai besoin que l'ordinateur dorme vraiment et même que le partage et le wifi soient désactivés. Je vais modifier ma question pour la clarifier. Merci quand même =)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X