Exécuter Python et Matplotlib pourrait-il empêcher mon ordinateur de dormir? Comment puis-je le savoir?
J'ai remarqué que parfois, lorsque j'ouvre mon ordinateur portable, la batterie est tombée à 99% ou même 97% après une journée ou deux.
Je l'ai mis en veille après avoir été fermé pendant 5 secondes, et j'ai vérifié qu'en voyant que s'il est fermé pendant plus de cinq secondes, je dois utiliser Touch-ID ou un mot de passe pour commencer à l'utiliser.
Il existe probablement un moyen plus intelligent de savoir ou de rechercher si / quand il est entré en mode veille pour la dernière fois, mais je ne sais pas.
Mais parfois, en travaillant, je dois soudainement m'arrêter pendant des heures ou plus, et dans certains cas, j'exécute Python à partir d'iTerm2 et j'ai un tracé matplotlib ouvert que je ne veux pas fermer (j'utilise des widgets et il a un panneau de contrôle et des paramètres Je veux continuer à utiliser plus tard).
Et parfois, je remarque que lorsque j'ouvre à nouveau mon MacBook Air, la batterie est déchargée.
En testant, je vois que je dois toujours utiliser Touch ID après 5 secondes dans cet état.
Des questions:
- Exécuter Python et Matplotlib pourrait-il empêcher mon ordinateur de dormir?
- Existe-t-il un moyen de savoir ou de rechercher si / quand il est entré pour la dernière fois en mode veille? Cela sera utile pour le débogage de ce problème.
cliquez pour la taille réelle
Réponses
J'ai remarqué que parfois, lorsque j'ouvre mon ordinateur portable, la batterie est tombée à 99% ou même 97% après une journée ou deux.
Une baisse de 1 à 3% de la batterie sur une période de 24 à 48 heures est très normale et attendue. Lorsque vous mettez votre Mac en veille, tous les processus seront suspendus (à condition de ne pas fermer les fenêtres iTerm).
La petite baisse de batterie est probablement due à PowerNap ( prise en charge de MacBook Air depuis 2010) qui réveillera périodiquement l'ordinateur pour vérifier les e-mails, les mises à jour, synchroniser les documents iCloud, les messages, les notes, etc.
Exécuter Python et Matplotlib pourrait-il empêcher mon ordinateur de dormir?
Pourrait-il? Oui. Mais d'après les symptômes que vous avez présentés, non, ce n'est pas le cas. Votre Mac n'irait pas pendant «un jour ou deux» et ne perdrait que 1 à 3% de sa charge si un processus actif l'empêchait de dormir. Un moyen très simple de le confirmer est de vérifier le processus du script (vous n'avez jamais mentionné ce qu'il fait donc ma réponse est générique ici), si le script est terminé ou a progressé pendant ce temps, il était évidemment en cours d'exécution. Si c'est exactement là où vous l'avez laissé, c'est que votre Mac dormait.
- Les processus du terminal s'arrêtent-ils si le Mac est en veille?
Existe-t-il un moyen de savoir ou de rechercher si / quand il est entré pour la dernière fois en mode veille? Cela sera utile pour le débogage de ce problème.
Il n'y a aucun problème à déboguer.
Ce que vous voyez est tout à fait normal. Une baisse de charge de la batterie de 1 à 3% (en moyenne 2%) sur «un jour ou deux» est bien dans la norme, même avec PowerNap désactivé. Si votre Mac ne dormait pas, votre plainte serait très différente - ce serait que la batterie se viderait complètement et ferait planter votre application / processus. Pour diagnostiquer ce problème, vous émettez la commande
% pmset -g assertions
Cela vous dira ce qui empêche votre Mac de dormir. Il devrait renvoyer des zéros.
L'autre raison pour laquelle «un problème» ne devrait pas être supposé est qu'il existe une distinction très importante entre le sommeil et l'hibernation. Lorsque votre Mac dort, le processeur passe dans un mode de puissance inférieure (pas éteint) et l'état actuel est conservé en mémoire (il y en a beaucoup plus, mais limitons-le à ces fonctions majeures). Cela signifie qu'il y a une consommation d'énergie. Si vous souhaitez arrêter la consommation d'énergie (techniquement, vous ne pouvez pas empêcher complètement une batterie de se décharger en raison de la physique et de la chimie régissant la batterie), vous devez mettre votre ordinateur en veille prolongée . C'est là que l'état sera écrit sur le disque et que l'alimentation sera coupée.
Maintenant, pour voir quand votre Mac s'est endormi, vous pouvez également obtenir le journal à partir pmsetde:
% pmset -g log | grep -i "sleep\|wake"
Le problème avec cela est qu'avec les nouvelles versions de macOS, l'ordinateur se réveillera toujours pour des raisons arbitraires, même avec PowerNap désactivé. Je le sais parce que je peux entendre périodiquement un lecteur de code-barres "réinitialiser" (il émet une tonalité lorsqu'il est connecté à l'USB), même si le Mac est en veille avec PowerNap désactivé. Pour une raison quelconque, il réinitialise le bus USB. Je n'ai pas enquêté davantage sur cela parce que a) cela se produit sur tous les Mac que j'ai utilisés et b) le Mac n'a jamais eu d'effets néfastes au réveil. Tous les processus ont été suspendus comme ils étaient censés le faire.
En limitant la portée des symptômes à la baisse de charge de la batterie sur une période de plusieurs jours, vous finirez par chercher une solution à un non-problème.