Respostas:
No leão da montanha, você pode usar o caffeinatecomando
caffeinate -u -t 1000
evitará inatividade por 1000 segundos.
A solução para esse problema não é manter o cliente (seu Mac) acordado. Usar abordagens como essa não é confiável. O que acontece se a conexão de rede for perdida? Mesmo se o seu Mac estiver ativado, o script será interrompido.
Usar nohup
Se o seu script de execução longa for chamado eternity.sh, tente o seguinte:
nohup /path/to/eternity.sh > /path/to/output.out &
Agora você pode até fechar a conexão e seu script continuará sendo executado . Os &planos de fundo são o processo para que você possa manter a conexão aberta e inserir comandos. Veja qualquer saída do seu script via:
tail -f /path/to/output.out
Os caminhos nos exemplos são opcionais se o script estiver no seu caminho e você desejar que a saída do script seja gravada output.outno diretório atual.
Eu gerencio scripts que são executados por dias seguidos. Scripts como esses devem ser desanexados do terminal. Felizmente, nohupfornece uma chamada de comando fácil de lembrar para conseguir isso - acho que não há problema .
Outra opção é pmset . Use o comando pmset noidle para impedir o sono enquanto pmsetestiver em execução. Infelizmente, requer uma janela de terminal separada para pmsetexecução. No entanto, a outra opção caffeinate,, apenas permite definir um determinado horário . Portanto, é uma questão de escolher se você deseja abrir uma segunda sessão SSH ou lidar com uma restrição de tempo.
Edit: De acordo com o comentário do binarybob , você pode executá-lo em segundo plano assim: pmset noidle &Para voltar ao pmsettipo fg.
pmsetem segundo plano usando pmset noidle &e, portanto, continuar usando o prompt de comando atual. Digite fgpara obter pmsetde volta, em que ponto você pode Ctrl + C-lo
!pmset noidle- muito bom quando você tem um desktop servindo o notebook IPython e um laptop conectado remotamente.
caffeinate -i -s /bin/ssh ...
Explicação:
-i - Impeça o sono ocioso.
-s- Impedir o sono do sistema (totalmente, mesmo se você fechar a tampa). Nota: ele funciona apenas com energia CA.
/bin/ssh- Continue escrevendo o comando que deseja executar. Usar sshdiretamente em vez de /bin/sshtambém deve funcionar.
Resultados: Seu sistema não irá dormir enquanto o sshcomando estiver em execução.
Se você está procurando a opção nuclear como eu:
sudo systemsetup -setcomputersleep Never
- Definir ou desativar o sono devido à inatividade do sistema Mac na linha de comando no OS X
O protetor de tela StarMessage ( http://starmessagesoftware.com/moonscreensaver/ ) também tem a opção de manter o MAC acordado por 2 horas, 8 horas ou permanentemente. Essa maneira de desativar o sono MAC é muito mais fácil que a cafeína.