È possibile configurare la condivisione Internet per consentire al computer di dormire?


9

TL; DR: la condivisione di Internet impedisce al mio Mac di essere sospeso. Ho bisogno di dormire manualmente il sistema su base regolare. Voglio un modo per configurare la condivisione di Internet per smettere di prevenire il sonno.

Ho un iMac a casa nella mia camera da letto troppo lontano dal mio router, e non posso usare il wireless, inoltre, la copertura 3G qui è terribile, quindi ho abilitato la condivisione di Internet in modo da poter usare il mio iPhone / iPad collegato tramite il mio iMac.

Al lavoro sono su una rete aziendale e il wireless è un po 'scadente e troppo restrittivo, quindi ho attivato anche la condivisione Internet sul mio MacBook Pro, in modo che il mio iPhone possa raggiungere contenuti interni.

Il problema è: quando premo + + (o > Sospensione) nessuno dei due computer va in sospensione come desiderato; questo a meno che non disabiliti prima la condivisione di Internet.

A casa voglio che il computer dorma mentre dormo (risparmia energia + più silenzio) e al lavoro quando vado a casa voglio che dorma anche io, quindi non devo chiudere tutte le app connesse (Adium, Colloquy, ecc.) E riaprire il giorno successivo.

Come posso configurare pmseto Condivisione Internet in modo da poter dormire il mio computer senza incorrere in questo problema?

Nota: ho già usato pmsetper verificare se c'erano altri motivi e l'offesa pidè sempre com.apple.InternetSharing.

Modifica: mi rendo conto che dormire sul computer renderà impossibile usare la condivisione Internet. Voglio che dorma completamente e voglio che Internet Sharing sia di nuovo attivo solo quando il computer si sveglia.


Il mio output per il comando sopra è DenySystemSleep. Sebbene abbia trovato la stringa, non sono stato in grado di utilizzare sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.natper modificare il comportamento. Potresti espandere la tua risposta un po '?
Irae Carvalho,

Quindi, ad esempio, vuoi qualcosa che disattiverà la condivisione, quindi dormirà. E qualcos'altro che, automaticamente al risveglio, accenderà la condivisione.
GEdgar,

Esattamente! Questo è ciò di cui ho bisogno
Irae Carvalho,

Risposte:


8

Ho sperimentato l'utilizzo di ControlPlane per ottenere ciò che desideri. Il mio risultato preliminare è che farà quello che vuoi.

ControlPlane rileva le modifiche al sistema chiamate "fonti di prova". Le modifiche vengono valutate con "regole" che definiscono una modifica in "contesto". Associate a ciascun contesto sono "azioni".

Una delle "fonti di prova" è un evento di sonno / veglia. Quindi ho configurato una regola in modo tale che su un evento di sospensione (ad esempio hai fatto clic su sospensione nel menu Apple), viene attivato il contesto "Tempo di sospensione". E per questo contesto ho disattivato l'azione 'ToggleInternetSharing'.

Dopo aver fatto clic su Sospensione, ricevo un avviso che dice che la condivisione di Internet viene disattivata e dopo un po '(sembra per sempre ma probabilmente è solo 10 o 20 secondi) il Mac si mette in sospensione.

E ho una seconda regola in modo che in un evento di veglia si attivi il contesto "Waking Up" e questo ha l'azione per impostare "ToggleInternetSharing".

Le mie regole e azioni:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Provalo!

Questo sta solo graffiando la superficie di ciò che ControlPlane può fare.


App incredibile! Ha funzionato come un fascino! Mille grazie per la spiegazione dettagliata. Inoltre, ho verificato che l'app sia completamente gratuita e open source. Per me questo conta come un vantaggio a favore del suo utilizzo =)
Irae Carvalho

Conosco ControlPlane da qualche tempo, ma non l'ho usato. La tua domanda è stata un'ottima ragione per esplorare le sue capacità, grazie per quello.
Gilby,

+1 qui ... Con OS X Mavericks v10.9.4e funziona ancora come un fascino. Grazie
OGM

Sembra un'ottima applicazione! Sfortunatamente, l'attivazione / disattivazione della condivisione di Internet non funziona per il momento in El Capitan (probabilmente neanche in Sierra).
Winterflags,

2

Se stai eseguendo Lion, InternetSharingblocca esplicitamente il file SystemSleep. Dai un'occhiata a:

strings /usr/libexec/InternetSharing | grep SystemSleep

L'output di questo comando: DenySystemSleep è la prova che InternetSharingsta bloccando intenzionalmente la possibilità del kernel di andare in modalità sleep. C'è una semplice spiegazione a questa protezione: una volta InternetSharingattivato, i client di questo Mac potrebbero utilizzarlo come router per accedere a Internet. Molte cose potrebbero essere in esecuzione automaticamente in cima a questa connessione Internet senza alcuna conoscenza della persona davanti allo schermo.

Questa connessione dovrebbe essere interrotta solo dall'amministratore del sistema che l'ha avviata e non dal comportamento automatico del sistema.

Questo è un comportamento sicuro.

Di conseguenza, il metodo corretto per garantire che InternetSharingsia disattivato quando la sospensione del Mac è di pianificare 4 eventi nel seguente ordine:

InternetSharing off
    system sleep
    system wakeup
InternetSharing on

Questa è la programmazione offerta da ControlPlane.


Il mio output per il comando sopra è DenySystemSleep. Sebbene abbia trovato la stringa, non sono stato in grado di utilizzare sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.natper modificare il comportamento. Potresti espandere la tua risposta un po '?
Irae Carvalho,

1
Credo che @ daniel-azuelos significhi dimostrare che InternetSharing è responsabile. Il comando che suggerisce cerca attraverso il binario di InternetSharing e trova la stringa relativa al blocco della sospensione. Questo aiuta a confermare ciò che è probabilmente responsabile del blocco del sonno, ma non del comportamento desiderato.
Graham Miln

1

Non è pratico avere un Mac con Internet Sharing abilitato per poter dormire.

La funzione di condivisione Internet è la versione software di un router: funge da gateway per Internet, un server DHCP, un firewall e un server d'inoltro DNS. Funziona proprio come i router che puoi acquistare dal tuo rivenditore locale; ed è gratuito.

Tuttavia, c'è un enorme svantaggio: se il Mac che funge da gateway è spento o addormentato, le altre macchine non possono collegarsi online.

Questo è il motivo per cui la condivisione Internet impedisce al computer di andare in modalità sospensione.

Ma posso condividere file / iTunes / Screen quando è addormentato

Sì, puoi condividere tutte queste cose e altro ancora. Tuttavia, quando vai ad accedere a quei file il tuo Mac si riattiva . Questo si chiama Wake On Demand e Bonjour Sleep Proxy .

Quando il tuo Mac è addormentato, mantiene la connessione di rete un po '"attiva"; è in attesa che i "pacchetti" Bonjour riattivano il computer. Questo è gestito dal dispositivo Airport (l'adattatore di rete) stesso; non il computer. Quando riceve il "pacchetto di riattivazione", il Mac si riattiva e puoi iniziare la condivisione delle risorse.

Bonjour 1 è un servizio di rilevamento zero config che utilizza Domain Name Services (mDNS) multicast che è un protocollo UDP 2 (viene trasmesso e non può essere instradato) che è un trasporto piccolo, senza stato e orientato ai messaggi minimo.

Fondamentalmente, UDP (su cui si basa Bonjour) è perfetto per inviare un messaggio al tuo computer per dire "Svegliati!"

Per navigare su Internet (utilizzare un computer dietro il gateway Mac), è necessario lo stack di protocollo completo basato su TCP . Avrà bisogno di DHCP, NAT, firewall, ecc. Ciò significa che dovrà far girare tutti quei servizi prima di consentire ai client di navigare sul web. Ciò introdurrà molta latenza.

E tornando a un approccio più pragmatico, se il tuo Mac andasse a dormire e fungesse da gateway, o non andrebbe mai a dormire o sarebbe su e giù come qualcuno con un brutto caso di insonnia.


1 Bonjour è l'implementazione di Apple della rete a configurazione zero (zeroconf), un gruppo di tecnologie che include il rilevamento dei servizi, l'assegnazione degli indirizzi e la risoluzione dei nomi host. Bonjour individua dispositivi come stampanti, altri computer e i servizi che tali dispositivi offrono su una rete locale utilizzando record di servizio multicast Domain Name System (mDNS).

2 UDP è un protocollo di livello di trasporto orientato al messaggio minimo. UDP non fornisce garanzie al protocollo di livello superiore per la consegna dei messaggi e il livello UDP non mantiene lo stato dei messaggi UDP una volta inviati. È semplice, adatto al bootstrap o ad altri scopi senza uno stack di protocollo completo, come DHCP e Trivial File Transfer Protocol.


Allan, grazie per la tua comprensione. Nel mio caso particolare, utilizzo solo la condivisione di Internet a causa di un MBP che mi connetto al mio iMac tramite Thunderbolt Bridge per ottenere il vantaggio di Ethernet (100 Mbit invece di ~ 30 Mbit Wifi). Non utilizzo la condivisione Internet come "router". Sarebbe quindi pratico per me trovare un modo tramite script o automatizzazione per abilitare / disabilitare la condivisione di Internet (o forzare il sonno).
Winterflags,

La condivisione di Internet sta trasformando il tuo Mac in un router: questa è la funzione principale di ciò che fa la condivisione di Internet.
Allan,

Capisco, ma non ne sto parlando in termini tecnici. Uso la Condivisione Internet solo quando mi connetto l'MBP tramite Thunderbolt Bridge all'iMac, e quindi non ha senso che l'iMac non vada mai a dormire, indipendentemente dal fatto che sia connesso o meno. Quindi alla ricerca di una soluzione alternativa, magari con script.
Winterflags

1
Bene, non annullerai la condivisione Internet impedendo al tuo MBP di andare in stop
Allan

Grazie - ho già provato quelle risposte e non sono stato in grado di farle lavorare con El Capitan (forse a causa del SIP), ma dovrò indagare ulteriormente.
Winterflags


0

Quando l'unità di gestione dell'alimentazione del computer fa dormire il dispositivo, entra in modalità a basso consumo. Il codice eseguibile medio sul computer non viene eseguito nel modo normale: il computer mantiene una potenza sufficiente per aggiornare la memoria (se necessario) e poco altro. Non sarai in grado di impegnarti nell'informatica generale mentre il computer dorme.

Tuttavia, c'è una buona alternativa che dovresti guardare. Invece di dormire l'intera unità, controlla display sleep in System Preferences -> Energy Saver. Nel mio caso d'uso, ho una configurazione hot-corner (che puoi abilitare in System Preferences -> Desktop & Screen Saver -> Screen Saver) in modo che quando vado a pranzo e ho bisogno di bloccare lo schermo e / o semplicemente mettere lo schermo in pausa, mi sposto in basso -angolo sinistro. Funziona bene per me, il computer non ritorna da una routine di sonno e tutti i processi di lunga durata che ho dimenticato non vengono interrotti. Nel tuo caso, ciò significa che il tuo hotspot WiFi non verrà eliminato.


1
Questo è davvero molto utile, io uso <kbd> ^ </kbd> + <kbd> ⇧ </kbd> + <kbd> ⏏ </kbd> per farlo. Ma non è quello che desidero. Non ho bisogno della condivisione di Internet mentre il computer dorme. Ho bisogno che il computer dorma davvero e anche disattivando la condivisione e il wifi. Modificherò la mia domanda per chiarire. Grazie comunque =)
Irae Carvalho,

0

È possibile utilizzare Power Manager per mettere il Mac in stato di sospensione dopo periodi di inattività. Power Manager può ignorare i processi e le applicazioni che bloccano la sospensione inattiva, inclusa la condivisione Internet.

La guida per l'utente spiega come configurarlo:

Un sonno innescato da una migliore inattività

Power Manager offre un'alternativa. Forniamo un sonno innescato da inattività. L'inattività viene misurata diversamente dal tempo di inattività; l'inattività è una misurazione più semplice determinata esclusivamente dall'attività dell'utente.

In alternativa, la seguente ricetta mostra come creare un evento Power Manager per mettere il Mac in stato di sospensione dopo un periodo di inattività .

Power Manager: spegnimento dopo attività di inattività

Disclaimer: lavoro per l'azienda che sviluppa Power Manager.


Non ha funzionato per me con la condivisione Internet attiva. -1 per aver perso un'ora della mia vita.
Winterflags,

Cosa volevi ottenere e cosa non ha funzionato per te?
Graham Miln,

Come il PO e la tua risposta. Ho configurato Inactivity Sleep, nella speranza che "Forza sospensione" con la condivisione Internet abilitata in Preferenze di Sistema> Condivisione . Non ha funzionato, ma avrebbe attivato la sospensione se la condivisione Internet era disabilitata.
Winterflags,

1
Power Manager invia una richiesta di sospensione a macOS. Se si verificano problemi con il sonno, come indica l'altra domanda, gli stessi problemi del sonno influiranno anche sulle richieste di sonno emesse da applicazioni di terze parti. Certo, potrei sbagliarmi o sbagliarmi semplicemente nella mia comprensione della tua situazione. Spero che tu possa trovare una soluzione.
Graham Miln,

1
macOS dormirà sempre quando viene chiesto esplicitamente di dormire - Finder> Apple (menu)> Sospendi . Non dormire è un comportamento che suggerisce problemi con il Mac.
Graham Miln,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.