Suppongo che desideri avviare questa procedura anziché eseguirla a un orario pianificato regolarmente.
Il mio approccio sarebbe quello di iniziarlo dalla riga di comando, ma qualsiasi comando può essere eseguito in un componente script di shell di uno script di Automator con alcune modifiche. Il seguente approccio combina alcuni componenti per portare a termine il lavoro:
- Un comando
tell
per uscire dall'applicazione
- Una chiamata da riga di comando per mettere il computer in stop
- Una chiamata da riga di comando per pianificare 1 e 2 per un orario specifico.
1. Dire all'applicazione di uscire
Questo può essere semplice come:
osascript -e 'tell application "AppName" to quit'
2. Mettere il computer in stato di Stop
Dai un'occhiata a pmset
per maggiori dettagli, ma inviando il seguente comando si metterà in stop il computer:
pmset sleepnow
3. Pianificazione di un'operazione da eseguire in un momento specifico
Dai un'occhiata a a comando. Questo comando ti dà la possibilità di specificare un tempo per l'esecuzione di un comando. Dovrai abilitare questa funzionalità in quanto non è predefinita. Per abilitare il demone atrun
, esegui il seguente comando [riferimento su SU] :
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Una volta attivato atrun
, qualsiasi comando può essere programmato per un orario specifico emettendo
echo "<command>" | at HH:MM
che funziona perché at
prende il suo input da stdin
per impostazione predefinita. Un approccio più semplice consiste nell'eseguire i comandi elencati in un file. Un file può essere eseguito utilizzando il flag -f
, seguito dal nome dello script da eseguire in questo modo:
at -f /path/to/file HH:MM
Metti tutto insieme
Quanto segue presuppone che atrun
sia abilitato. Come esempio di un giocattolo, diciamo che voglio chiudere Mail e mettere il computer in stop alle 23:00. Creo il file contenente i comandi che voglio eseguire come segue:
osascript -e 'tell application "Mail" to quit'
pmset sleepnow
Salva quel file in quit-and-sleep
e poi esegui sulla riga di comando
at -f /path/to/quit-and-sleep 23:00
Avvertimenti
Non ho fatto alcun controllo per assicurarmi che Mail fosse effettivamente chiuso. Lo script presuppone anche che nient'altro possa ostacolare la sospensione del computer. L'ho mantenuto semplice qui come punto di partenza per quello che vuoi.