Respostas:
No leão da montanha, você pode usar o caffeinate
comando
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.out
no diretório atual.
Eu gerencio scripts que são executados por dias seguidos. Scripts como esses devem ser desanexados do terminal. Felizmente, nohup
fornece 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 pmset
estiver em execução. Infelizmente, requer uma janela de terminal separada para pmset
execuçã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 pmset
tipo fg
.
pmset
em segundo plano usando pmset noidle &
e, portanto, continuar usando o prompt de comando atual. Digite fg
para obter pmset
de 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 ssh
diretamente em vez de /bin/ssh
também deve funcionar.
Resultados: Seu sistema não irá dormir enquanto o ssh
comando 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.