Ho un semplice script launchd che riproduce un suono ogni 30 minuti e che esce dalla libreria utente ~/Library
. Non funziona se la mia macchina è addormentata, ma esegue l'ultimo evento mancato quando la macchina si sveglia. Penso che questo sia il comportamento previsto. La mia domanda è, come faccio a impedire che ciò accada. Se ho saltato l'evento di mezz'ora, non voglio che venga eseguito alle 20 minuti dopo l'ora.
Ecco il nocciolo del mio script. Chiama uno script Python. Ho provato a mettere un blocco nello script python per verificare che io sia in pochi minuti ogni 30 minuti, ma non sembra funzionare sulla scia. (Manca l'orologio di sistema in qualche modo?)
<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>
Ecco uno snippet dal codice Python che controlla il tempo prima di riprodurre il suono.
time0 = datetime.datetime.now()
if (time0.minute % 30) < 2:
subprocess.run(["/Users/pheon/bin/afplay-vol.sh", "1", bell],check=True)