blog · git · desktop · images · contact & privacy · gopher


Was tun, wenn X einfriert?

Eben ist mein X-Server (Radeon sei Dank) eingefroren. Leider hat X ja mittlerweile die tolle Eigenschaft, dass es in einem solchen Falle gleich alles mit sich reißt -- insbesondere die Tastatur. Das ist insofern ein unerträglicher Zustand, als es bedeutet, dass man den X-Server in dieser Situation nicht mehr geregelt von der eigenen Maschine aus beenden kann. CTRL-ALT-Backspace hilft nicht, ein Wechsel an die VT's ist nicht möglich. Die Magic-Keys greifen auch nicht -- ob das jetzt an X, meiner Xmodmap oder dem Umstand liegt, dass es sich um ein Notebook handelt (SysRQ ist nur via "Fn"-Umweg zu erreichen und das kollidiert in erster Instanz schonmal mit dem Numpad), weiß ich nicht.

Auf jeden Fall ist bei einem Freeze von X die Kiste nur noch via SSH zu erreichen. Sofern eine andere Maschine da ist, mit der man das machen kann.

Das einzige, was sich X (noch) nicht unter den Nagel reißt, sind ACPI-Events. Diese bilden damit die letzte Möglichkeit, lokal I/O zu betreiben. Zum Beispiel über den Power-Button kann man dann einen geordneten Shutdown einleiten. Das klappt auch dann noch, wenn bei einem Druck auf "Num" nichtmal mehr die LED für's Numpad an-/ausgeht.

Ich hatte den dafür nötigen Daemon (acpid -- zu installieren über das gleichnamige Arch-Paket) bisher völlig außer Acht gelassen. Andere Distributionen haben sowas vielleicht schon von Hause aus, keine Ahnung. Ein Blick in /etc/acpi/handler.sh verrät jedenfalls schnell, was man tun muss. Per Default ist der Daemon so eingestellt, dass alle Events an dieses Script gefeuert werden, also muss man es sich nur zurechtstutzen. Man könnte es auch über einen eigenen Regelsatz machen, aber dazu war ich jetzt zu faul.

Somit hat man dann wieder die Kontrolle. Ich hoffe nur, dass X nicht auch irgendwann ACPI annektiert...