crontab pour réveiller osx du sommeil

18

J'ai un crontab qui lancera un certain programme tôt le matin (après que je me suis endormi) et le refermera plus tard le matin (avant de me réveiller). Mais mon iMac n'exécutera pas le script crontab pendant son sommeil.

Je vois qu'il y a des préférences pour réveiller la machine et la faire dormir à nouveau à une heure spécifiée, mais existe-t-il un moyen de le faire en utilisant le crontab?

Nippysaurus
la source

Réponses:

28

cronne s'exécute pas lorsque l'ordinateur est en veille, il n'y a donc aucun moyen pour vous d'avoir une entrée crontab pour réveiller l'ordinateur. Cela dit, vous pouvez programmer l'ordinateur pour qu'il se réveille juste une minute ou deux avant votre tâche périodique dans Préférences >> Économiseur d'énergie >> Planification.

Il convient également de souligner que depuis Tiger, Apple a déplacé la plupart des tâches planifiées cronet des scripts comme init.rcvers le launchdprocessus. Il fournit des moyens de contrôle plus détaillés (mais encombrants, je pense) (via plusieurs fichiers plist). Il exécutera également automatiquement les tâches manquées car l'ordinateur dormait au réveil. Jetez un œil à la page Planification des tâches chronométrées d'Apple .

jtb
la source
Le lien est rompu.
retracile
1
Excellente réponse, mais pouvez-vous la réveiller lorsque l'ordinateur portable est fermé?
Utilisateur
4

Une autre façon de planifier le réveil du sommeil consiste à utiliser pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

launchd ne peut pas réveiller un ordinateur du mode veille, mais il exécute les travaux planifiés pendant le mode veille après le réveil. Si d'autres cherchent comment faire cela, vous pouvez par exemple enregistrer cette liste sous ~/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>

Exécutez ensuite launchctl load ~/Library/LaunchAgents/some.label.plist.

Lri
la source
3

Vous pouvez planifier le réveil de votre Macintosh dans le panneau de préférences Économiseur d'énergie. Voir le bouton Planifier.

Richard Hoskins
la source
2

Vous voudrez peut-être examiner Anacron

Anacron exécute les tâches quotidiennes, hebdomadaires et mensuelles périodiques sur votre Mac même si la machine (un ordinateur portable, par exemple) passe beaucoup de temps à dormir ou à s'éteindre. Anacron vérifie en silence lorsque vous redémarrez et toutes les soixante minutes pendant que l'ordinateur est en cours d'exécution pour voir si les divers scripts périodiques sont en retard et les exécute si nécessaire. L'avantage d'Anacron par rapport à de nombreuses autres solutions à ce problème est qu'il fonctionne comme un processus d'arrière-plan Unix approprié, ne nécessite aucune intervention de l'utilisateur et utilise les scripts périodiques réguliers.

Awaken est une autre application qui pourrait faire l'affaire

Bruce McLeod
la source
1

cron ne fonctionnera pas lorsque OSX est en mode veille.

Vous voudrez peut-être examiner cronwake (doit parcourir google translate car le site est japonais je crois) et anacron , ou vous pouvez simplement utiliser l' Energy Saverapplication pour planifier une heure de réveil pour exécuter le script, puis le remettre en veille.

John T
la source