La commande uptime débloque sur macOS (MAJ)

EDIT : Le bug d’uptime est connu, et corrigé dans la prochaine beta de macOS. Ouf !

Un petit truc intéressant que j’ai noté aujourd’hui alors que je retravaillais un script pour détecter le nombre de jours où un Mac est resté allumé. Habituellement, sous Unix, Linux et consort, on s’appuie sur la commande uptime :
~ % uptime
12:46 up 3 days, 23:24, 5 users, load averages: 2,59 2,82 3,46

Sauf que mon script m’indiquait que mon Mac était démarré depuis 8 jours. Et c’était effectivement le cas, puisque mon Mac n’a pas été redémarré depuis l’installation de la dernière mise à jour de macOS. La différence est que ce script s’appuie sur la commande sysctl, qui renvoie la valeur exacte depuis les informations stockées dans le noyau :
~ % sysctl -n kern.boottime
{ sec = 1711409931, usec = 192831 } Tue Mar 26 00:38:51 2024
Presque six jours de différence !

Il semble donc que la commande uptime de macOS renvoie des valeurs complètement fantaisistes (à croire qu’elle est dopée à l’IA). J’ai pu reproduire ce bug sur trois Mac différents (Apple Silicon ou Intel).
Par conséquent, méfiez-vous vraiment de la commande uptime, que ça soit dans vos scripts ou pour faire du troubleshooting (et si vous avez des infos sur le pourquoi du comment, ça m’intéresse).

1 commentaire sur “La commande uptime débloque sur macOS (MAJ)”

  1. En fait, est-ce vraiment anormal ? Ton Mac n’a pas été « up » depuis le dernier boot. Il y a des périodes de mise en veille. « the length of time the system has been up » (dixit man uptime), ce n’est pas la dernière fois qu’il a démarré.

    Cela dit, comme discuté hier, il y a une correction pour ça dans la 14.5 à venir, je suis curieux de voir ce que ça va donner.

Laisser un commentaire