crontab per riattivare osx dal sonno


18

Ho un crontab che avvierà un determinato programma al mattino presto (dopo che sono andato a dormire) e lo richiudo più tardi al mattino (prima che mi sveglio). Ma il mio iMac non eseguirà lo script crontab mentre è addormentato.

Vedo che ci sono alcune preferenze per riattivare la macchina e farla dormire di nuovo in un momento specifico, ma c'è un modo per farlo usando il crontab?

Risposte:


27

cronnon viene eseguito mentre il computer è inattivo, quindi non è possibile avere una voce crontab per riattivare il computer. Detto questo, puoi programmare la riattivazione del computer solo un minuto o due prima dell'attività cron in Preferenze >> Risparmio energia >> Pianificazione.

Vale anche la pena sottolineare che da quando Tiger, Apple ha spostato la maggior parte dei lavori pianificati crone gli script come init.rcnel launchdprocesso. Fornisce mezzi di controllo più dettagliati (ma ingombranti, credo) (attraverso diversi file plist). Eseguirà anche automaticamente le attività perse perché il computer era inattivo al suo risveglio. Dai un'occhiata alla pagina dei lavori programmati di Apple .


Il collegamento è interrotto.
Retracile

1
Ottima risposta, ma puoi svegliarlo quando il laptop è chiuso?
Utente

4

Un altro modo per programmare il risveglio dal sonno è usare pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

launchd non può riattivare un computer dalla modalità di sospensione, ma esegue i lavori pianificati durante la sospensione dopo il risveglio. Se altri cercano come farlo, puoi ad esempio salvare questa lista come ~/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>

Quindi corri launchctl load ~/Library/LaunchAgents/some.label.plist.


3

È possibile pianificare il risveglio del Macintosh nel pannello delle preferenze Risparmio energia. Vedi il pulsante Pianifica.


2

Potresti voler esaminare Anacron

Anacron esegue le attività periodiche giornaliere, settimanali e mensili sul tuo Mac anche se la macchina (ad esempio un laptop) trascorre gran parte del suo tempo in modalità di sospensione o spegnimento. Anacron controlla silenziosamente quando si riavvia e ogni sessanta minuti mentre il computer è in esecuzione per vedere se i vari script periodici sono scaduti e li esegue se necessario. Il vantaggio di Anacron rispetto a molte altre soluzioni a questo problema è che viene eseguito come un corretto processo in background Unix, non richiede alcun intervento da parte dell'utente e utilizza gli script periodici regolari.

Un'altra applicazione che potrebbe fare il trucco è Awaken


1

cron non funzionerà mentre OSX è in modalità sospensione.

Potresti voler esaminare cronwake (devo eseguire google translate poiché il sito è giapponese credo) e anacron , oppure puoi semplicemente utilizzare l' Energy Saverapplicazione per pianificare un orario di attivazione per eseguire lo script, quindi rimetterlo in sospensione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.