Eu tenho um script de longa duração no computador remoto.
Não quero encerrar minha sessão ssh e preciso inseri-la em um script de shell.
Como é possível impedir que meu Mac caia no sono na linha de comando?
sleep-wake
command-line
kobame
fonte
fonte
Respostas:
No leão da montanha, você pode usar o
caffeinate
comandoevitará inatividade por 1000 segundos.
fonte
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 .fonte
man screen
.Outra opção é pmset . Use o comando
pmset noidle
para impedir o sono enquantopmset
estiver em execução. Infelizmente, requer uma janela de terminal separada parapmset
execução. No entanto, a outra opçãocaffeinate
,, 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 aopmset
tipofg
.fonte
pmset
em segundo plano usandopmset noidle &
e, portanto, continuar usando o prompt de comando atual. Digitefg
para obterpmset
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.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. Usarssh
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.fonte
Se você está procurando a opção nuclear como eu:
- Definir ou desativar o sono devido à inatividade do sistema Mac na linha de comando no OS X
fonte
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.
fonte