Je suppose que vous souhaitez lancer cette procédure plutôt que de l'exécuter à une heure régulièrement planifiée.
Mon approche serait d'initier cela à partir de la ligne de commande, mais toutes les commandes peuvent être exécutées dans un composant de script shell d'un script Automator avec quelques modifications. L'approche suivante combine quelques composants pour faire le travail:
- Une
tell
commande pour quitter l'application
- Un appel en ligne de commande pour mettre l'ordinateur en veille
- Un appel en ligne de commande pour planifier 1 et 2 pour une heure spécifique.
1. Dire à l'application de quitter
Cela peut être aussi simple que:
osascript -e 'tell application "AppName" to quit'
2. Mettre l'ordinateur en veille
Jetez un oeil à pmset
pour plus de détails, mais l'exécution de la commande suivante mettra votre ordinateur en veille:
pmset sleepnow
3. Planification d'une opération à exécuter à un moment précis
Jetez un œil à la commande at . Cette commande vous donne la possibilité de spécifier une heure pour l'exécution d'une commande. Vous devrez activer cette fonctionnalité car elle ne l'est pas par défaut. Pour activer le atrun
démon, exécutez la commande suivante [référence sur SU] :
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Une fois que vous avez activé atrun
, toute commande peut être planifiée à une heure spécifique en émettant
echo "<command>" | at HH:MM
qui fonctionne car at
prend son entrée stdin
par défaut. Une approche plus simple consiste à exécuter les commandes répertoriées dans un fichier. Un fichier peut être exécuté en utilisant l' -f
indicateur, suivi du nom du script à exécuter comme ceci:
at -f /path/to/file HH:MM
Mettre tous ensemble
Ce qui suit suppose que cette option atrun
est activée. À titre d'exemple de jouet, disons que je veux quitter Mail et mettre l'ordinateur en veille à 23 heures. Je créerais un fichier contenant les commandes que je veux exécuter comme suit:
osascript -e 'tell application "Mail" to quit'
pmset sleepnow
Enregistrez ce fichier dans quit-and-sleep
, puis exécutez-le sur la ligne de commande
at -f /path/to/quit-and-sleep 23:00
Avertissements
Je n'ai fait aucune vérification pour m'assurer que Mail était bien fermé. Le script suppose également que rien d'autre n'empêchera l'ordinateur de s'endormir. Je l'ai gardé simple ici comme point de départ pour ce que vous voulez.