O launchd executa trabalhos que foram agendados durante o sono (por StartCalendarInterval) depois de acordar. Você poderia voltar a dormir se o script for executado em um horário atrasado.
for h in {0..23}; do sudo pmset repeat wake MTWTFSS $h:00:00; done
~ / Library / LaunchAgents / test.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>Program</key>
<string>/Users/username/Desktop/test</string>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>59</integer>
</dict>
</dict>
</plist>
~ / Desktop / test:
#!/bin/bash
say a
[[ $(date +%-M) -lt 10 ]] && osascript -e 'tell app "System Events" to sleep'
chmod +x ~/Desktop/test
, e execute launchctl load ~/Library/LaunchAgents/test.plist
ou efetue o logout e retorne. Você precisa descarregar e carregar o plist para aplicar as alterações. Veja man launchd.plist
para mais informações.
Se você acordar o computador manualmente às 7:59:55, ele poderá voltar a dormir.