Risposte:
In Mountain Lion puoi usare il caffeinate
comando.
caffeinate -u -t 1000
impedirà il sonno inattivo per 1000 secondi.
La soluzione a questo problema non è quella di mantenere sveglio il client (Mac). L'uso di approcci come questo non è affidabile. Cosa succede se si perde la connessione di rete? Anche se il tuo Mac è sveglio, la sceneggiatura si interromperà.
Uso nohup
Se viene chiamato il tuo script di lunga durata eternity.sh
, prova quanto segue:
nohup /path/to/eternity.sh > /path/to/output.out &
Ora puoi persino chiudere la connessione e lo script continuerà a funzionare . Gli &
sfondi del processo in modo da poter mantenere aperta la connessione e immettere i comandi. Visualizza qualsiasi output dal tuo script tramite:
tail -f /path/to/output.out
I percorsi negli esempi sono facoltativi se lo script si trova sul proprio percorso e si desidera scrivere l'output dello script output.out
nella directory corrente.
Gestisco script che vengono eseguiti per giorni alla volta. Script come questi dovrebbero essere staccati dal terminale. Per fortuna, nohup
fornisce un invocazione di comando facile da ricordare per raggiungere questo obiettivo - non pensare ad alcun problema .
Un'altra opzione è pmset . Utilizzare il comando pmset noidle
per impedire il sonno finché pmset
è in esecuzione. Sfortunatamente, richiede una finestra Terminale separata con l' pmset
esecuzione. Tuttavia, l'altra opzione, caffeinate
ti consente solo di impostare un determinato orario . Quindi si tratta di scegliere se si desidera aprire una seconda sessione SSH o gestire un vincolo di tempo.
Modifica: secondo il commento di binarybob , puoi effettivamente eseguirlo in background in questo modo: pmset noidle &
per tornare a pmset
digitare fg
.
pmset
in background utilizzando pmset noidle &
e quindi continuare a utilizzare il prompt dei comandi corrente. Digita fg
per tornare pmset
indietro, a quel punto puoi Ctrl + C it
!pmset noidle
- molto bello quando si dispone di un desktop che serve notebook IPython e un laptop che si connette da remoto.
caffeinate -i -s /bin/ssh ...
Spiegazione:
-i
- Prevenire il sonno inattivo.
-s
- Prevenire la sospensione del sistema (completamente, anche se si chiude il coperchio). Nota: funziona solo con alimentazione CA.
/bin/ssh
- Continua a scrivere il comando che vuoi eseguire. Anche l'utilizzo ssh
diretto invece di /bin/ssh
dovrebbe funzionare.
Risultati: il sistema non dormirà finché il ssh
comando è in esecuzione.
Se stai cercando l'opzione nucleare come me:
sudo systemsetup -setcomputersleep Never
Lo screensaver StarMessage ( http://starmessagesoftware.com/moonscreensaver/ ) ha anche la possibilità di mantenere il MAC sveglio per 2 ore, 8 ore o permanenti. Questo modo di disabilitare il sonno MAC, è molto più semplice della caffeina.