Manchmal, wenn mein Terminal einfriert und ich nicht tippen kann. Ich kann keine Ursachen identifizieren und auch keine Diagnose stellen. Irgendwelche Vorschläge?
Vielen Dank!
GNOME Terminal 2.30.2 unter Ubuntu 10.04
Manchmal, wenn mein Terminal einfriert und ich nicht tippen kann. Ich kann keine Ursachen identifizieren und auch keine Diagnose stellen. Irgendwelche Vorschläge?
Vielen Dank!
GNOME Terminal 2.30.2 unter Ubuntu 10.04
Antworten:
Ein guter allgemeiner Weg, um mysteriöse Hänge zu diagnostizieren:
ps axo pid,wchan:32,cmd
, um die andere Prozess-ID zu findenwchan
Spalte, in der angegeben wird, ob sie im Kernel stecktsudo strace -p PID
Einfügen der PID dieses Prozesses aus. Fügen Sie das in einen Fehlerbericht oder eine Frage einWenn es außer einem Bindestrich in der wchan-Spalte noch etwas gibt, dann ist der Prozess im Kernel, der etwas tut. Einige typische Werte:
futex_wait_queue_me
- Warten auf einen Futex im selben Prozess auf einen anderen Thread poll_schedule_timeout
- Warten auf Netzwerk- oder Interprozesskommunikation oder nur eine Weile schlafenpipe_wait
- Lesen / Schreiben einer PfeifeEs gibt Tausende von Möglichkeiten, daher kann ich nicht alle auflisten. Siehe Was ist der "Wartekanal" eines Prozesses? für mehr.
wchan
bedeutet, dass der Prozess im Kernel wartet. Wenn es dort für eine lange Zeit und ohne guten Grund wie das Abhören von Netzwerk-Io bleibt, dann steckt es fest. ;)
Haben Sie zufällig Strg + S gedrückt? Es ist die Terminal-Pause-Taste, die alle Ausgaben stoppt, bis Sie Strg-Q drücken, um fortzufahren.
top
in einem Terminal arbeiten, sollten Sie das Problem leicht finden können.