On more than one occasion I have been hit by a situation where I wished
I could remember which Magic SysRq key to use. So I wrote the following
patch: Alt+SysRq+h to print the list of keys, taken from the SysRq
Documentation. I thought I'd share it here, hoping that other people 
would also find it useful. It's against 2.2.16 but probably works on 
many other kernel versions too.

--- linux/drivers/char/sysrq.c.vanilla  Mon Jun 26 20:57:13 2000
+++ linux/drivers/char/sysrq.c  Mon Jun 26 21:08:53 2000
@@ -67,6 +67,10 @@
        console_loglevel = 7;
        printk(KERN_INFO "SysRq: ");
        switch (key) {
+       case 'h':                                           /* H -- Help */
+               printk("Help\n");
+               print_sysrq_help();
+               break;
        case 'r':                                           /* R -- Reset raw mode */
                if (kbd) {
                        kbd->kbdmode = VC_XLATE;
@@ -255,4 +259,22 @@
 
        unlock_kernel();
        printk(KERN_INFO "Done.\n");
+}
+
+static void print_sysrq_help(void)
+{
+       printk("'h'     - This help information.\n");
+       printk("'r'     - Turns off keyboard raw mode and sets it to XLATE.\n");
+       printk("'k'     - Kills all programs on the current virtual console.\n");
+       printk("'b'     - Will immediately reboot the system without syncing or 
+unmounting your disks.\n");
+       printk("'o'     - Will shut your system off (if configured and supported).\n");
+       printk("'s'     - Will attempt to sync all mounted filesystems.\n");
+       printk("'u'     - Will attempt to remount all mounted filesystems 
+read-only.\n");
+       printk("'p'     - Will dump the current registers and flags to your 
+console.\n");
+       printk("'t'     - Will dump a list of current tasks and their information to 
+your console.\n");
+       printk("'m'     - Will dump current memory info to your console.\n");
+       printk("'0'-'9' - Sets the console log level, controlling which kernel 
+messages will be printed to your console.\n");
+       printk("'e'     - Send a SIGTERM to all processes, except for init.\n");
+       printk("'i'     - Send a SIGKILL to all processes, except for init.\n");
+       printk("'l'     - Send a SIGKILL to all processes, INCLUDING init.\n");
 }



-- 
     Alan Ford * [EMAIL PROTECTED] * DFax: +44 (0)870 1600868 
 WWW: http://www.whirlnet.co.uk/ * PGP: 0x8F807D7D * GPG: 0x673BA843
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to