No código-fonte do kernel linux em sysrq.c na linha 415 , existe uma estrutura definida, o que deve acontecer quando uma determinada tecla é pressionada. Então você vê, nenhum comando em um terminal é excitado, em vez disso, são chamadas funções codificadas no kernel. Então, enquanto o kernel não estiver travado, você pode pressionar essas teclas, não importa qual aplicativo está rodando em primeiro plano, o kernel manipula as teclas pressionadas.
Aqui está a parte interessante:
[...]
415 static struct sysrq_key_op *sysrq_key_table[36] = {
416 &sysrq_loglevel_op, /* 0 */
417 &sysrq_loglevel_op, /* 1 */
418 &sysrq_loglevel_op, /* 2 */
419 &sysrq_loglevel_op, /* 3 */
420 &sysrq_loglevel_op, /* 4 */
421 &sysrq_loglevel_op, /* 5 */
422 &sysrq_loglevel_op, /* 6 */
423 &sysrq_loglevel_op, /* 7 */
424 &sysrq_loglevel_op, /* 8 */
425 &sysrq_loglevel_op, /* 9 */
426
427 /*
428 * a: Don't use for system provided sysrqs, it is handled specially on
429 * sparc and will never arrive.
430 */
431 NULL, /* a */
432 &sysrq_reboot_op, /* b */
433 &sysrq_crash_op, /* c & ibm_emac driver debug */
434 &sysrq_showlocks_op, /* d */
435 &sysrq_term_op, /* e */
436 &sysrq_moom_op, /* f */
437 /* g: May be registered for the kernel debugger */
438 NULL, /* g */
439 NULL, /* h - reserved for help */
440 &sysrq_kill_op, /* i */
441 #ifdef CONFIG_BLOCK
442 &sysrq_thaw_op, /* j */
443 #else
444 NULL, /* j */
445 #endif
446 &sysrq_SAK_op, /* k */
447 #ifdef CONFIG_SMP
448 &sysrq_showallcpus_op, /* l */
449 #else
450 NULL, /* l */
451 #endif
452 &sysrq_showmem_op, /* m */
453 &sysrq_unrt_op, /* n */
454 /* o: This will often be registered as 'Off' at init time */
455 NULL, /* o */
456 &sysrq_showregs_op, /* p */
457 &sysrq_show_timers_op, /* q */
458 &sysrq_unraw_op, /* r */
459 &sysrq_sync_op, /* s */
460 &sysrq_showstate_op, /* t */
461 &sysrq_mountro_op, /* u */
462 /* v: May be registered for frame buffer console restore */
463 NULL, /* v */
464 &sysrq_showstate_blocked_op, /* w */
465 /* x: May be registered on ppc/powerpc for xmon */
466 /* x: May be registered on sparc64 for global PMU dump */
467 NULL, /* x */
468 /* y: May be registered on sparc64 for global register dump */
469 NULL, /* y */
470 &sysrq_ftrace_dump_op, /* z */
471 };
[...]
Tecnicamente, você pode chamá-los também em um terminal. Mas, você escreve em um pseudo-arquivo no sistema de arquivos proc chamado /proc/sysrq-trigger
. Por exemplo, você pode fazer um:
echo b >/proc/sysrq-trigger
... que instantaneamente reinicia a máquina, sem perguntar ou avisar ou qualquer coisa. É o mesmo que quando você pressiona SysRq - b .