1 votes

Laisser le système en veille après l'achèvement de la tâche launchd ?

J'ai une tâche launchd qui s'exécute à 2h du matin tous les jours sous mon utilisateur. J'ai programmé séparément la gestion de l'alimentation pour réveiller mon système à 1h59 afin que la tâche s'exécute sans problème. Cependant, si le système doit se réveiller pour exécuter la tâche, je voudrais qu'il s'éteigne ensuite.

Pour l'instant, ma solution est d'exécuter pmset sleepnow de manière synchrone à la fin du script.

Cependant, cela signifie que mon système s'éteindra peu de temps après 2h, même si je l'utilisais déjà activement (ce qui peut arriver).

Y a-t-il un moyen de définir conditionnellement le système en mode veille seulement si le système a dû se réveiller pour exécuter la tâche?

0voto

Saaru Lindestøkke Points 5124

Vous pouvez étendre votre tâche launchd et utiliser pmset -g log pour obtenir un journal de tous les événements de réveil. Je n'ai pas de Mac sous la main, donc je ne peux pas vérifier la sortie de la commande, mais elle indique la raison et l'heure à laquelle une machine s'est réveillée.

Vous pouvez soit supposer qu'un événement de réveil s'est produit à 01:59 en raison de la gestion de l'alimentation, soit vérifier la raison du réveil pour voir si vous pouvez la déduire de là.
Ensuite, vous pouvez rendre la commande pmset sleepnow conditionnelle à la raison du réveil (dérivée), empêchant ainsi une mise en veille même lorsque vous utilisez activement la machine à 02:00.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X