
~からマジックSysRqキー
魔法のSysRqキーはLinuxカーネルが理解するキーの組み合わせで、ユーザーはさまざまなタスクを実行できます。低レベルのコマンド システムの状態に関係なく。静止状態を回復したり、ファイルシステムを壊さずにコンピュータを再起動するためによく使用されます。
低レベルのコマンドは何ですか?テーブルのキー移動する?
端末で実行できるプログラムですか?
このキーはgnomeやUnityのショートカットとどう違うのですか?
答え1
Linuxカーネルのソースコードからsysrq.c ライン 415、特定のキーが押されたときに何が起こるかを知らせる構造を定義します。ご覧のとおり、端末ではコマンドは実行されませんが、カーネルにハードコードされた関数が呼び出されます。したがって、カーネルがクラッシュしない限り、そのキーを押すことができ、カーネルはどのアプリケーションがフォアグラウンドで実行されているかに関係なく、押されたキーを処理します。
面白い部分は次のとおりです。
[...]
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 };
[...]
技術的には端末から呼び出すこともできますが、procファイルシステムに名前付きファイルを作成できます/proc/sysrq-trigger
。たとえば、次のことができます。
echo b >/proc/sysrq-trigger
...質問、警告、または何もせずにすぐにシステムを再起動します。 - を押すSysRqときと同じ効果b。
答え2
外部リンクのWikipedia記事にリンクされているとおり...ここで文書を見ることができます。Linux Magic Systemリクエストキーハッキング
編集する:
Documentation
これはLinuxカーネルソースサブディレクトリにもあります。