crontab, aby obudzić OSX ze snu

18

Mam plik crontab, który uruchomi pewien program wcześnie rano (po tym, jak zasypiam) i zamknie go później rano (zanim się obudzę). Ale mój iMac nie wykona skryptu crontab, gdy śpi.

Widzę, że istnieją pewne preferencje, aby obudzić maszynę i ustawić ją ponownie w określonym czasie, ale czy można to zrobić za pomocą crontab?

Nippysaurus
źródło

Odpowiedzi:

28

cronnie wykonuje się, gdy komputer śpi, więc nie ma sposobu, aby mieć wpis crontab, aby go obudzić. To powiedziawszy, możesz zaplanować wybudzanie komputera na minutę lub dwie przed zadaniem cron w Preferencje >> Oszczędzanie energii >> Harmonogram.

Warto również zauważyć, że od czasu Tiger firma Apple przeniosła większość zaplanowanych zadań croni skrypty init.rcdo tego launchdprocesu. Zapewnia bardziej szczegółowe (ale uciążliwe, jak sądzę) środki kontroli (za pomocą kilku plików plist). Będzie również automatycznie uruchamiać zadania pominięte, ponieważ komputer spał po przebudzeniu. Zajrzyj na stronę Apple Planowanie zadań czasowych .

jtb
źródło
Link jest zepsuty.
retracile
1
Świetna odpowiedź, ale czy możesz ją obudzić, gdy laptop jest zamknięty?
Użytkownik
4

Innym sposobem na zaplanowanie przebudzenia ze snu jest użycie pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

Uruchomiony nie może obudzić komputera ze stanu uśpienia, ale po przebudzeniu wykonuje zadania zaplanowane podczas snu. Jeśli inni szukają, jak to zrobić, możesz na przykład zapisać tę listę jako ~/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>

Potem biegnij launchctl load ~/Library/LaunchAgents/some.label.plist.

Lri
źródło
3

Możesz zaplanować budzenie komputera Macintosh w panelu preferencji Oszczędzanie energii. Zobacz przycisk Harmonogram.

Richard Hoskins
źródło
2

Możesz zajrzeć do Anacrona

Anacron uruchamia okresowe codzienne, tygodniowe i miesięczne zadania na komputerze Mac, nawet jeśli komputer (na przykład laptop) spędza dużo czasu we śnie lub jest wyłączony. Anacron po cichu sprawdza, kiedy uruchamia się ponownie i co sześćdziesiąt minut podczas pracy komputera, aby sprawdzić, czy różne okresowe skrypty są opóźnione, i uruchamia je, jeśli to konieczne. Przewagą Anacron nad wieloma innymi rozwiązaniami tego problemu jest to, że działa jako poprawny proces uniksowy w tle, nie wymaga interwencji użytkownika i używa regularnych okresowych skryptów.

Inną aplikacją, która może rozwiązać ten problem, jest Przebudźcie się

Bruce McLeod
źródło
1

cron nie uruchomi się, gdy OSX jest w trybie uśpienia.

Możesz zajrzeć do cronwake ( chyba, że strona jest przetłumaczona na Google, ponieważ strona jest japońska, jak sądzę) i anacron , lub możesz po prostu użyć Energy Saveraplikacji, aby zaplanować czas budzenia w celu uruchomienia skryptu, a następnie przywrócić go do stanu uśpienia.

John T.
źródło