2009-10-06. So: why does this echo b > /proc/sysrq-trigger no longer work as a way to hard-reboot the computer? It turns out that CONFIG_MAGIC_SYSREQ, under the 'Kernel hacking' category of kernel config, is needed for this. Interestingly, it also turns out that enabling this option has the main (at least, earlier-implemented) effect of making certain key-combinations do special things -- potentially very useful, but not always what one might like the cats to do to the desktop machine. http://en.wikipedia.org/wiki/Magic_SysRq_key As a sysctl.conf setting, kernel.sysrq = 0 will disable this feature even if it's configured. So echo 1 >/proc/sys/kernel/sysrq will temporarily enable it. There exists a sysreqd program that can be set to listen to (default) port tcp 4094, to give sysrq commands with simple plaintext password control. INTERESTING (bearing in mind annoying consoles after killing an nvidia-based X session): a graphical program `has no chance to restore text mode' (if crashed), but a readable text console can be restored with the textmode and reset commands, the former being within the svgalib package. I'd noticed that reset didn't work in these cases, and I see that textmode isn't on our gentoo systems, so I'll install it. There's no mention of the possibility of allowing only the /proc-based interface without allowing the keyboard to do any special things. To use the keyboard-based commands, hold the Alt and SysReq keys together, then press the further key that sends the command-character. AltGr may be used instead of Alt in some cases, and keyboards without SysRq will generally have a Print key that can be used instead. The commands for /proc/sysreq-trigger, or the sysreqd or keyboard (assuming a QWERTY layout) are: 0-9 set console log-level b hard reboot c reboot kexec and give crashdump d display currently held locks e SIGTERM to all processes other than pid=1 f call oom_kill to choose and kill a process g switch back to kernel's framebuffer console (after kernel modesetting) h give help info i SIGKILL to all processes other than pid=1 k kill all processes on the current console, inc. X and svgalib l display stack backtrace of currently executing tasks m display memory information n reset nice-level of all high-priority and realtime tasks o hard power-off p display state of registers and flags q display all active high-resolutoin timers and clock-sources r keyboard from raw mode (as with X11) to XLATE mode (?) s sync all mounted filesystems t display details of all tasks u remount all filesystems read-only v display Voyager SMP processor information w display blocked (D-state) tasks Pretty useful!