J'ai un simple launchd script qui joue un son toutes les 30 minutes et il s'exécute à partir de la bibliothèque de l'utilisateur. ~/Library
. Il ne s'exécute pas si ma machine est endormie, mais exécute le dernier événement manqué lorsque la machine se réveille. Je pense que c'est le comportement attendu. Ma question est la suivante : comment puis-je empêcher que cela se produise ? Si j'ai manqué l'événement de la demi-heure, je ne veux pas qu'il soit exécuté à l'heure passée de 20 minutes.
Voici le noyau de mon script. Il appelle un script Python. J'ai essayé de mettre un bloc dans le script Python pour vérifier que je suis à quelques minutes de chaque 30 minutes, mais cela ne semble pas fonctionner sur wake. (Est-ce qu'il manque l'horloge système en quelque sorte ?)
<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>
Voici un extrait du code Python qui vérifie le temps avant de jouer le son.
time0 = datetime.datetime.now() if (time0.minute % 30) < 2: subprocess.run(["/Users/pheon/bin/afplay-vol.sh", "1", bell],check=True)