É quase certo que você esteja vendo os efeitos de launchd
iniciando os trabalhos de manutenção do sistema de rotina periodic daily
, periodic weekly
e periodic monthly
, que fazem coisas como rolar os logs e excluir arquivos temporários não usados. Esses trabalhos geralmente são executados às 3h da manhã, mas se a sua máquina estava adormecida nesse momento, launchd
os inicia na próxima vez que sua máquina for ativada.
O trabalho que provavelmente executa mais tempo e retarda mais o sistema com muita E / S de disco é o trabalho de makewhatis
semanal (3AM sábado de manhã), que atualiza o banco de dados de nomes de arquivo usado pelo tradicional Unix locate
comando (sorta como um mds old-school / Spotlight). Você pode desabilitar isso em /etc/defaults/periodic.conf
alterando a linha
weekly_whatis_enable="YES"
para
weekly_whatis_enable="NO"
Se você tiver adicionado ou modificado um grande número de arquivos em seu sistema, na próxima vez em que makewhatis
for executado, poderá levar um longo tempo. Se você matá-lo todas as vezes e nunca terminar, então na próxima semana terá que começar tudo de novo. Eu geralmente não sou incomodado por makewhatis
, mesmo que meu sistema não seja rápido, especialmente meu disco. A única vez que eu realmente percebo é quando adiciono um grande número de arquivos ao meu sistema, como depois de verificar toda a árvore fonte do sistema operacional NetBSD.
Se makewhatis
e os outros periodic
trabalhos não se tornarem todo o seu problema, esteja ciente de que launchd
fornece o serviço adiar para a próxima ativação para qualquer trabalho launchd
que usa a chave StartCalendarInterval
. Aqui está uma maneira de ver rapidamente quais tarefas do launchd em seu sistema usam essa chave:
grep -r StartCalendarInterval {/System,,~}/Library/Launch{Daemons,Agents}/
(NB: Eu acho que as chaves nesta declaração podem ser um bash
-ism)