2011-12-07 14 views
6

Mam dziwny problem. Po wprowadzeniu hasła w systemie debian 6.0, otrzymuję motd, ale potem następuje 5-10 sekundowa przerwa, dopóki nie otrzymam zachęty powłoki. Jeśli naciśnie ctrl-c podczas tej pauzy, natychmiast pojawi się monit. Co może się tutaj wydarzyć? Czy zabijam proces logowania? Dlaczego wywołanie bash trwa tak długo? Doceniam wszelkie sugestie.10 sekundowe opóźnienie między logowaniem a wyświetlaniem powłoki.

Dzięki

+0

Może to pytanie jest bardziej odpowiedni do strony [superuser.com] (http://superuser.com) –

Odpowiedz

11

Można debugować skrypty powłoki bash za pomocą set -x i set +x. Komenda set -x włącza tryb debugowania, a komenda set +x powoduje jej dezaktywację.

Umieszczenie set -x u góry profilu $ HOME/.bash_profile powinno spowodować wydrukowanie informacji z debugowania dla własnych plików inicjujących powłoki. Jeśli, jak mówisz, otrzymasz 10-sekundowe opóźnienie, powinieneś być w stanie go łatwo wyśledzić. Jeśli to nie rzuca żadnego światła, przejdź do pliku inicjalizacji całego systemu /etc/profile.

Bash Debugging i shell initialisation files

+0

Dzięki, pomogło mi to w śledzeniu bash-completion! Najwyraźniej ma dużo inicjalizacji. –

+1

Dziękuję także ode mnie! Miałem bardzo podobny problem do wirtualnego systemu wdrożonego z pliku OVA do VMWare ESXi. Znalazłem (przy użyciu set -x), że przyczyną problemu był skrypt VMWare Tools o nazwie /etc/profile.d/zzzz-vamilocale.sh, który próbował odczytać ustawienia środowiska OVF za pomocą/opt/vmware/bin/ovfenv, który z kolei próbował pobrać ustawienia z różnych lokalizacji, w tym z CDROMu. Jeśli urządzenie CD było puste lub nie podłączone, spowodowałoby to opóźnienie. Usunięcie skryptu (który właśnie ustawia/aktualizuje LANG env var) było jednym prostym rozwiązaniem! –

3

Jest wielce prawdopodobne, że coś w swoim .bashrc lub .bash_profile. A może jakiś inny plik startowy (/etc/profile i inni).

+0

Dzięki, to było rzeczywiście w moim .bashrc; bash-completion był winowajcą. –

0

sam problem jak John Rix dla mnie./opt/vmware/bin/ovfenv był winowajcą.

znalazłem ten artykuł po wykonaniu następujące postępowanie: rozpoczynając kolejny bash będzie trwać do 30 sekund na CentOS6

strace bash 

pokazuje kilka linii, zanim system się zawiesza:

read(3, "LANG=`/opt/vmware/bin/ovfenv --q"..., 183) = 183 

Usunięto skrypt wykonany z:

mv /etc/profile.d/zzzz-vamilocale.sh /etc/profile.d/zzzz-vamilocale.sh.ko 
Powiązane problemy