SysRqマジックキーはどのプログラム/コマンドを呼び出しますか?

SysRqマジックキーはどのプログラム/コマンドを呼び出しますか?

~からマジック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

おすすめ記事