Risposte:
In Mountain Lion puoi usare il caffeinatecomando.
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.outnella directory corrente.
Gestisco script che vengono eseguiti per giorni alla volta. Script come questi dovrebbero essere staccati dal terminale. Per fortuna, nohupfornisce 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' pmsetesecuzione. Tuttavia, l'altra opzione, caffeinateti 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 pmsetdigitare fg.
pmsetin background utilizzando pmset noidle &e quindi continuare a utilizzare il prompt dei comandi corrente. Digita fgper tornare pmsetindietro, 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 sshdiretto invece di /bin/sshdovrebbe funzionare.
Risultati: il sistema non dormirà finché il sshcomando è 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.