Hängenden X-Server killen, wenn auch Magic SysRQ nicht funktioniert
Der Linux-Kernel ist frei von zählbaren Abstürzen, leider aber nicht der X-Server (je nach Grafikkarte).
Wenn dieser hängt, kann man sich über telnet einloggen und ihn killen. Doch wohl die wenigsten Home-PC sind an ein Netzwerk angeschlossen. Also hilft hier nur noch der Griff zum Reset-Knopf, welcher nicht ganz ungefährlich ist.
Da bei einem Absturz des X-Servers alle anderen Prozesse noch lauffähig sind, kann man jedoch mit einem Hintergrundprogramm beliebige Kommandos per Joystick ausführen. Denn dieser ist bei einem Absturz des X-Servers nicht blockiert wie Maus und Tastatur.
Das rettende Programm heißt jslaunch, es benötigt noch nicht einmal das Kernel-Modul für den Joystick.
Man startet es am besten bei jedem Systemstart automatisch, indem man es ihn die boot.local einträgt. Bei mir sieht das so aus:
#Letzte Zeile in boot.local #load jslaunch daemon, will kill X when all JS-buttons are pressed /usr/local/bin/jslaunchd &
Damit dies auch funktioniert, habe ich mit ln -s /usr/local/bin/jslaunch /usr/sbin/jslaunch
einen Symlink erstellt, weil beim Booten /usr/local/bin nicht im $PATH ist. Dazu gehört auch noch ein Konfigurationsdatei /etc/jslaunchd.conf:
# run "killall X" when buttons 1,2,3 and 4 are pressed: run 1234 killall X # set lockfile to /var/lock/jslaunch (this is the default) lock /var/lock/jslaunch
Mit dieser Einstellung beende ich durch Drücken aller 4 Joystickknöpfe den X-Server und alle Programme, die ihn benutzten.
Weitere Informationen befinden sich auf obiger Seite sowie auf der manpage des Programms.