Impede que um Mac durma enquanto um script bash está em execução e permite que ele durma normalmente após a conclusão

11

Eu tenho meu Mac para acordar durante a noite e executar um rsync para fazer o backup. Isto é configurado através do Energy Saver > Agendar.

No entanto, parece que vai voltar a adormecer antes que possa fazer qualquer coisa, então eu preciso parar de dormir durante a execução do script bash que o rsync executa.

Eu percebi que a melhor maneira (se é possível) é emitir um comando para definir o tempo de espera do sono para "Nunca" ou um tempo limite muito longo antes de rsyncs e depois voltar ao normal quando estiver concluído. Existe uma solução melhor para fazer isso?

    
por 3498DB 22.01.2010 / 12:40

3 respostas

14

Caffeinate

Por exemplo:

caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder

Da página do manual:

EXAMPLE
     caffeinate -i make
        caffeinate forks a process, execs "make" in it, and holds an
        assertion that prevents idle sleep as long as that process
        is running.

Veja man caffeinate para detalhes.

    
por 04.09.2014 / 14:24
9

Mac OS X 10.8 (Leão da montanha) e posterior

Use o comando caffeinate . Veja a resposta de Nathan Long ou man caffeinate para detalhes.

Mac OS X 10.7 (Lion) e versões anteriores

Ele está enterrado na página de manual, mas pmset tem um modo muito simples para evitar o sono. Se você executar o comando pmset noidle , seu Mac será mantido acordado até que o processo seja eliminado. Veja como usá-lo em um script:

# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!

... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...

# kill pmset so the computer can sleep if it wants to
kill $PMSETPID

Isso é melhor do que usar o pmset para alterar as configurações do seu sono, o que requer acesso root e (supondo que você quer ser um bom cidadão) alguma forma de detectar as configurações atuais e alterá-las quando terminar.

    
por 15.09.2010 / 05:27
4

Tente

man pmset

: -)

    
por 22.01.2010 / 12:43