Garder le Mac éveillé pendant la compilation : Xcode et Docker sous macOS
La compilation dure quarante minutes. On la lance, on va chercher un café et on retrouve un Mac endormi depuis vingt minutes.
Pourquoi justement les compilations
Une compilation pousse le processeur au maximum sans produire la moindre saisie. macOS décide de la veille d’après le temps sans frappe ni mouvement de souris, pas d’après la charge. Pour le système, personne n’est devant l’ordinateur.
Que Xcode ou un outil de compilation pose lui-même une assertion dépend de l’outil et de la façon de l’appeler. Si vous ne l’avez pas vérifié, ne comptez pas dessus.
Ce qui se passe quand il s’endort
Quand le Mac dort, la compilation s’arrête. Au réveil, elle reprend souvent simplement, mais pas toujours : les connexions réseau sont en général coupées, et une étape qui téléchargeait des dépendances échoue sur un délai dépassé.
Docker ajoute une couche. Les conteneurs tournent dans une machine virtuelle qui s’endort avec le Mac. Ce qui échoue ensuite ressemble rarement à une veille, plutôt à une erreur réseau au hasard.
Deux façons de la laisser aller au bout
Dans le Terminal, caffeinate -i garde le Mac éveillé exactement le temps d’une commande, par exemple caffeinate -i make. C’est précis, mais il faut l’ajouter devant l’appel à chaque fois.
Avec Toxin, on lance avant la compilation une durée nettement supérieure à celle prévue, ou une session sans limite pour les compilations sans fin prévisible. Le temps restant s’affiche dans le panneau ; ensuite, les Réglages Système s’appliquent de nouveau.
La nuit et capot fermé
Pour une compilation de nuit, une durée de douze heures suffit. Toxin garde aussi l’écran allumé ; si vous n’en avez pas besoin, baissez la luminosité.
Si vous fermez le MacBook pendant la compilation, il faut le mode capot, car fermer le capot relève d’une règle distincte de macOS. Une compilation à pleine charge chauffe capot fermé ; le Mac doit rester à l’air libre, pas dans un sac.
Si la compilation échoue quand même
- Regarder l’icône : en contour, aucune session ne tournait.
- Durée trop courte ? Consulter l’heure de fin dans le panneau.
- Capot fermé sans mode capot ? macOS a alors mis le Mac en veille.
- Erreur réseau en cours de route ? C’est souvent la trace d’une veille.
Questions fréquentes
caffeinate ne suffit-il pas ?
Pour des commandes isolées dans le Terminal, si. Toxin est plus pratique quand la compilation part de Xcode, d’une autre app ou de plusieurs étapes et qu’on ne veut pas réécrire chaque appel.
Toxin ralentit-il la compilation ?
Non. Toxin ne fait que poser une assertion et ne calcule rien d’autre. La compilation dispose des mêmes performances que sans lui.
Une compilation interrompue coûte rarement du temps de calcul ; elle coûte de l’attention. Toxin garde le Mac éveillé aussi longtemps que vous le voulez. Une app de barre des menus pour macOS, pas encore sur le Mac App Store.