Tengo una simple launchd script que reproduce un sonido cada 30 minutos y se sale de la biblioteca de usuario ~/Library
. No se ejecuta si mi máquina está dormida, pero no ejecutar el último evento que se perdió cuando la máquina despierta. Creo que este es el comportamiento esperado. Mi pregunta es, ¿cómo puedo impedir que esto ocurra. Si me he perdido la mitad de horas de evento, no quiero que se ejecute en 20 minutos después de la hora.
Aquí está el núcleo de mi script. Llama a un script de Python. Traté de poner un bloque en la secuencia de comandos de python para comprobar que estoy dentro de un par de minutos de cada 30 minutos, pero que no parece funcionar en la vigilia. (Que está perdiendo el reloj del sistema de alguna manera?)
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/python3</string>
<string>/Users/pheon/Documents/playsound.py</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Minute</key>
<integer>0</integer>
<dict>
<key>Minute</key>
<integer>30</integer>
</dict>
</array>
Aquí es un fragmento de código python que comprueba el tiempo antes de reproducir el sonido.
time0 = datetime.datetime.now()
if (time0.minute % 30) < 2:
subprocess.run(["/Users/pheon/bin/afplay-vol.sh", "1", bell],check=True)