Manter o Mac acordado durante a compilação: Xcode e Docker no macOS
A compilação demora quarenta minutos. Lanças, vais buscar um café e voltas a um Mac que dorme há vinte.
Porquê justamente as compilações
Uma compilação leva o processador ao máximo e mesmo assim não produz uma única entrada. O macOS decide o repouso pelo tempo sem teclas nem movimento do rato, não pela carga. Para o sistema, não está ninguém ao computador.
Se o Xcode ou uma ferramenta de compilação criam eles próprios uma asserção depende da ferramenta e da forma como é chamada. Se não o verificaste, não confies nisso.
O que acontece quando adormece
Se o Mac dorme, a compilação para. Ao acordar muitas vezes continua sem mais, mas nem sempre: as ligações de rede costumam ter caído e um passo que estava a descarregar dependências falha por tempo esgotado.
Com o Docker junta-se uma camada. Os contentores correm numa máquina virtual que dorme com o Mac. O que falha depois raramente parece repouso; parece um erro de rede qualquer.
Duas formas de a deixar terminar
No Terminal, o caffeinate -i mantém o Mac acordado exatamente enquanto um comando corre, por exemplo caffeinate -i make. É preciso, mas tens de o escrever antes da chamada de cada vez.
Com o Toxin inicias antes da compilação um intervalo bem acima da duração prevista, ou uma sessão sem limite para compilações sem fim previsível. O tempo restante aparece no painel; depois volta a valer o que está nas Definições do Sistema.
Durante a noite e com a tampa fechada
Para uma compilação durante a noite chega um intervalo de doze horas. O Toxin mantém também o ecrã ligado; se não precisares dele, baixa o brilho.
Se fechares o MacBook durante a compilação, precisas do modo tampa, porque fechar a tampa é uma regra à parte do macOS. Uma compilação em carga máxima aquece com a tampa fechada; o Mac deve ficar ao ar livre, não dentro de uma mala.
Se a compilação falhar mesmo assim
- Ver o ícone: em contorno quer dizer que não havia sessão.
- Intervalo demasiado curto? Consulta a hora de fim no painel.
- Tampa fechada sem modo tampa? Então o macOS pôs o Mac em repouso.
- Erro de rede a meio? Muitas vezes é o rasto de um repouso.
Perguntas frequentes
O caffeinate não chega?
Para comandos isolados no Terminal, sim. O Toxin é mais cómodo quando a compilação corre a partir do Xcode, de outra app ou de vários passos e não queres reescrever cada chamada.
O Toxin torna a compilação mais lenta?
Não. O Toxin só cria uma asserção e não calcula mais nada. A compilação tem o mesmo desempenho que sem ele.
Uma compilação interrompida raramente custa tempo de cálculo; custa atenção. O Toxin mantém o Mac acordado enquanto quiseres. Uma app de barra de menus para macOS, ainda não na Mac App Store.