Tengo un script de launchd simple que reproduce un sonido cada 30 minutos y se queda sin la biblioteca de usuario ~/Library
. No se ejecuta si mi máquina está dormida, pero ejecuta el último evento perdido cuando la máquina se despierta. Creo que este es el comportamiento esperado. Mi pregunta es, ¿cómo puedo evitar que esto suceda? Si me perdí el evento de media hora, no quiero que se ejecute a los 20 minutos de la hora.
Aquí está el núcleo de mi script. Llama a un script de Python. Intenté poner un bloque en la secuencia de comandos de Python para comprobar que estoy dentro de unos minutos de cada 30 minutos, pero eso no parece funcionar al despertar. (¿Falta 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í hay un fragmento del código de Python que comprueba la hora 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)