¿Cómo puedo ejecutar un trabajo una vez al día con launchd, independientemente de cuándo esté encendida la computadora?

7

Me gustaría ejecutar un script de shell diariamente, pero no necesariamente en un momento específico. La computadora en la que se ejecuta el script está encendida en momentos irregulares, y no se pueden hacer suposiciones cuando eso ocurrirá.

Para eso, me gustaría que launchd se comporte un poco como anacron: Solo necesita ejecutar el trabajo una vez al día , en cualquier momento conveniente .

La mayoría de las publicaciones que he visto aquí o en otros sitios describen cosas como "correr todos los días a las 05:00", lo cual no me ayuda si la máquina está apagada en ese momento ...

¿Cómo escribo una lista de launchd especificando ese comportamiento?

    
pregunta jstarek 13.08.2011 - 10:59

1 respuesta

6

Launchd ejecutará tus trabajos la próxima vez que el mac se despierte. Así que si apagas tu mac, esto no funcionará. Necesitarás poner tu mac en suspensión para que tu script diario se ejecute cuando el mac se active si la última vez que se ejecutó fue durante la duración del sueño.

man launchd.plist:

  

Si el sistema está dormido, el        El trabajo se iniciará la próxima vez que la computadora se despierte. Si transcurren múltiples intervalos        antes de que se encienda la computadora, esos eventos se unirán en un evento al despertar de        dormir.

O en otras palabras: no tienes que hacer nada específico, de todos modos es el comportamiento predeterminado.

Si también desea ejecutar el comando una vez después de reiniciar, agregue

<Key>RunAtLoad</Key>
<true/>

a su cuenta de lanzamiento.

    
respondido por el nohillside 13.08.2011 - 11:48

Lea otras preguntas en las etiquetas