it-swarm-pt.tech

crontab para acordar osx do sono

Eu tenho um crontab que inicia um determinado programa de manhã cedo (depois de eu dormir) e o fecha novamente no final da manhã (antes de eu acordar). Mas meu iMac não executa o script crontab enquanto está adormecido.

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

18
Nippysaurus

cron não é executado enquanto o computador está hibernando, então não há como você ter uma entrada de crontab para despertar o computador. Dito isso, você pode agendar o computador para despertar apenas um ou dois minutos antes de sua tarefa cron em Preferências >> Economia de energia >> Agenda.

Também vale a pena apontar que, desde Tiger, 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 pesados, eu acho) (por meio de vários arquivos plist). Ele também executará automaticamente tarefas perdidas porque o computador estava hibernando quando despertou. Dê uma olhada na página Scheduling Timed Jobs da Apple.

29
jtb

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

Sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

launchd não pode despertar um computador do repouso, mas executa trabalhos agendados durante o repouso após acordar. Se outros pesquisarem como fazer isso, você pode, 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>

Então corra launchctl load ~/Library/LaunchAgents/some.label.plist.

4
Lri

Você pode programar o Macintosh para despertar no painel de preferências do Economizador de Energia. Veja o botão Agendar.

3
Richard Hoskins

Você pode querer dar uma olhada em Anacron

O Anacron executa as tarefas periódicas diárias, semanais e mensais em seu Mac, mesmo se a máquina (um laptop, por exemplo) passar a maior parte do tempo adormecido ou desligado. O Anacron verifica silenciosamente quando você reinicia e a cada sessenta minutos enquanto o computador está em execução para ver se os vários scripts periódicos estão atrasados ​​e os executa, se necessário. O A vantagem do Anacron sobre muitas outras soluções para esse problema é que ele é executado como um processo adequado em segundo plano do Unix, não requer intervenção do usuário e usa os scripts periódicos regulares.

Outro aplicativo que pode funcionar é Despertar

2
Bruce McLeod

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

Você pode querer dar uma olhada em cronwake (deve ser executado no google tradutor porque o site é japonês, eu acredito) e anacron , ou você pode apenas usar o Energy Saver aplicativo para agendar um horário de ativação para executar o script e colocá-lo novamente no modo de hibernação.

1
John T