crontab para despertar osx del sueño

15

Tengo un crontab que iniciará cierto programa temprano en la mañana (después de que me haya ido a dormir) y lo cerraré más tarde en la mañana (antes de despertarme). Pero mi iMac no ejecutará el script crontab mientras esté dormido.

Veo que hay algunas preferencias para activar la máquina y hacerla dormir nuevamente a una hora específica, pero ¿hay alguna forma de hacerlo usando el crontab?

Nippysaurus
fuente

Respuestas:

21

cron no se ejecuta mientras la computadora está dormida, por lo que no hay forma de que tenga una entrada de crontab para despertarla Dicho esto, puede programar la computadora para que se active solo un minuto o dos antes de su tarea cron en Preferencias & gt; Ahorro de energía & gt; & gt; Programar.

También vale la pena señalar que desde Tiger, Apple ha movido la mayoría de los trabajos programados desde cron y guiones como init.rc al launchd proceso. Proporciona medios de control más detallados (pero engorrosos, creo) (a través de varios archivos plist). También ejecutará automáticamente las tareas perdidas porque la computadora estaba inactiva cuando se despertó. Echa un vistazo a Apple Programación de trabajos cronometrados página.

jtb
fuente
El enlace está roto.
retracile
1
Buena respuesta, pero ¿puedes despertarla cuando la computadora portátil está cerrada?
User
4

Otra forma de programar el despertar del sueño es usar pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

launchd no puede activar una computadora desde el modo de suspensión, pero ejecuta trabajos programados durante la suspensión después de despertarse. Si otros buscan cómo hacerlo, puede, por ejemplo, guardar esta lista 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>

Entonces corre launchctl load ~/Library/LaunchAgents/some.label.plist.

Lri
fuente
3

Puede programar su Macintosh para que se active en el panel de preferencias de Energy Saver. Ver el botón de Programación.

Richard Hoskins
fuente
2

Es posible que desee mirar Anacron

Anacron ejecuta el periódico diario,   Tareas semanales y mensuales en tu Mac.   incluso si la máquina (un ordenador portátil, por   ejemplo) pasa gran parte de su tiempo   Dormido o apagado. Anacron   comprueba en silencio cuando se reinicia y   cada sesenta minutos mientras la computadora   se está ejecutando para ver si los diversos   Los scripts periódicos están vencidos y se ejecutan.   ellos si es necesario. La ventaja de   Anacron sobre muchas otras soluciones para   este problema es que se ejecuta como una adecuada   Proceso de fondo de Unix, no requiere   intervención del usuario, y utiliza la   scripts periódicos regulares.

Otra aplicación que podría hacer el truco es Despertar

Bruce McLeod
fuente
1

cron no se ejecutará mientras OSX esté en modo de suspensión.

Es posible que desee mirar cronwake (Debe ejecutarse a través de Google Translate ya que el sitio es japonés, creo) y anacron , o simplemente puedes usar el Energy Saver aplicación para programar una hora de activación para ejecutar el script, luego volver a ponerlo en suspensión.

John T
fuente