crontab para ativar o osx do sono

15

Eu tenho um crontab que lançará um certo programa no início da manhã (depois de eu ter dormido) e o fecharei novamente no período da manhã (antes de acordar). Mas meu iMac não executará o script crontab enquanto estiver dormindo.

Eu vejo que há algumas preferências para ativar a máquina e fazê-la dormir novamente em um horário especificado, mas existe uma maneira de fazer isso usando o crontab?

    
por Nippysaurus 29.07.2009 / 06:49

5 respostas

20

cron não é executado enquanto o computador está inativo, por isso não há como você ter uma entrada crontab para ativar o computador. Dito isso, você pode agendar o computador para acordar apenas um minuto ou dois antes da tarefa do cron em Preferências > > Economia de energia > > Agendar.

Também é importante ressaltar que, desde Tiger, a Apple moveu a maioria dos trabalhos agendados de cron e scripts como init.rc para o processo launchd . Ele fornece meios de controle mais detalhados (mas complicados, eu acho) (por meio de vários arquivos plist). Ele também executará automaticamente as tarefas perdidas porque o computador estava dormindo quando despertou. Dê uma olhada na página Agendamento de Trabalhos Cronometrados da Apple.     

por 29.07.2009 / 07:15
4

Outra maneira de programar o despertar do sono é usar o pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

O launchd não pode ativar um computador do modo de suspensão, mas executa tarefas agendadas durante o sono depois de acordar. Se os outros pesquisarem como fazer isso, você poderá, por exemplo, salvar este plist como ~/Library/LaunchAgents/some.label.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>say</string>
    <string>a</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>23</integer>
    <key>Minute</key>
    <integer>59</integer>
  </dict>
</dict>
</plist>

Em seguida, execute launchctl load ~/Library/LaunchAgents/some.label.plist .

    
por 14.11.2013 / 22:43
3

Você pode programar o Macintosh para ativar o painel de preferências do Economizador de energia. Veja o botão Agendar.

    
por 29.07.2009 / 07:11
2

Você pode querer olhar para Anacron

Anacron runs the periodic daily, weekly and monthly tasks on your Mac even if the machine (a laptop, for example) spends much of its time asleep or switched-off. Anacron silently checks when you reboot and every sixty minutes while the computer is running to see if the various periodic scripts are overdue, and runs them if necessary. The advantage of Anacron over many other solutions to this issue is that it runs as a proper Unix background process, requires no user intervention, and uses the regular periodic scripts.

Outra aplicação que pode fazer o truque é Despertar

    
por 29.07.2009 / 06:58
1

o cron não será executado enquanto o OSX estiver no modo de suspensão.

Você pode querer olhar para cronwake (deve passar pelo google translate, pois o site é japonês, acredito) e anacron , ou você pode apenas usar o aplicativo Energy Saver para agendar um horário de ativação para executar o script, em seguida, colocar volte a dormir.

    
por 29.07.2009 / 06:55