Tente excluir os arquivos de log do sistema Apple em /var/log/asl/
:
sudo rm /var/log/asl/*.asl
Isso fez o truque para mim.
Toda vez que eu inicio o iTerm ou Terminal depois de não usá-lo por algumas horas, leva de 10 a 20 segundos para retornar um prompt. A tela está em branco e, embora eu possa digitar, não consigo executar comandos.
Se eu sair de qualquer aplicativo, os lançamentos subseqüentes (se feitos relativamente em breve depois) serão bastante rápidos. A lentidão parece ocorrer apenas se o aplicativo não estiver sendo executado por algumas horas.
Estou executando o OSX 10.5.7 em um MacBookPro. Eu tenho exatamente a mesma configuração em outro computador, sem lentidão.
Alguma ideia de como acelerar as coisas novamente?
Outra dica pode ser útil:
Altere o shell de inicialização do padrão /usr/bin/login
para /bin/bash -l
ou /usr/bin/zsh
se você usar zsh.
Isso pode fazer com que o seu Terminal / iTerm2 seja lançado em velocidade de luz!
Para Terminal: Preferências → Inicialização: Altere de "Shell de login padrão" para "Comando: /bin/bash -l
"
Para iTerm2: Preferências → Perfis → Geral → Comando: Altere de "Login Shell" para "Comando: /bin/bash -l
"
Eu preciso de uma certa reputação para comentar sobre postagens? De qualquer forma, limpar os logs do sistema fez isso por mim também, obrigado. Eu tentei patch path_helper com o patch aqui: gist.github.com/123525, como sugerido em um comentário sobre (mencionado anteriormente neste tópico), mas sem sucesso. Eu recebo um erro críptico. No entanto, esse patch deve acelerar o lançamento do terminal.app.
adição: Como eu mencionei, limpar os logs fez o truque para mim, mas o problema continua a surgir à medida que os logs crescem continuamente depois de removê-los. Eu descobri que "tweaking" /etc/asl.conf me deu uma solução mais permanente. A modificação é registrar somente as mensagens que são categorizadas como "críticas" ou mais críticas do que isso, ao contrário da categoria "aviso" de registro e cada mais crítica do que isso. Além disso, desconsidero as mensagens do ftp, mail, local0, local1. Aqui está uma pasta do meu /etc/asl.conf:
##
# configuration file for syslogd and aslmanager
##
# redirect com.apple.message.domain to /var/log/DiagnosticMessages
? [T com.apple.message.domain] store_dir /var/log/DiagnosticMessages exclude_asldb
# authpriv messages are root/admin readable
? [= Facility authpriv] access 0 80
# remoteauth critical, alert, and emergency messages are root/admin readable
? [= Facility remoteauth] [<= Level critical] access 0 80
# broadcast emergency messages
? [= Level emergency] broadcast
# save kernel [PID 0] and launchd [PID 1] messages
? [<= PID 1] store
# save everything from emergency to notice
#? [<= Level notice] store
? [<= Level critical] store
# save lpr info level and above
#? [<= Level info] [= Facility lpr] store
# save all mail, ftp, local0, and local1 messages
#? [= Facility mail] store
#? [= Facility ftp] store
#? [= Facility local0] store
#? [= Facility local1] store
De um artigo que li há algumas semanas: Janelas de terminal de abertura lenta
/usr/libexec/path_helper
é muito lento ao carregar /etc/paths
Se você remover todas as entradas em /etc/paths
e garantir que esses itens estejam disponíveis em .bash_profile
, isso resolverá o problema. Fez para mim de qualquer maneira.
Se o aplicativo do terminal tiver sido carregado, mas você ainda não tiver um prompt, seu shell levará algum tempo para inicializar.
Isso provavelmente significa que você tem muito ou algo demorado no seu .bashrc
( supondo que você use bash
).
Meu palpite é que, com o tempo, algo está usando muita memória. Quando você inicializa um terminal depois de não usá-lo por algum tempo, alguma memória deve ser disponibilizada trocando seu conteúdo para o disco. Se você matar o processo do terminal e reiniciá-lo relativamente rápido, a memória ainda estará disponível e será iniciada rapidamente. Isso deve acontecer com outros aplicativos também.
Você deve monitorar seu uso de memória com o Activity Monitor e ver se consegue saber para onde está indo.
Uma solução mais permanente editando sudo vi /etc/asl.conf
é fornecida aqui .
Abra /etc/profile
e adicione a linha PATH=""
para que fique assim:
if [ -x /usr/libexec/path_helper ]; then
PATH=""
eval '/usr/libexec/path_helper -s'
fi