SysRq 매직 키는 어떤 프로그램/명령을 호출합니까?

SysRq 매직 키는 어떤 프로그램/명령을 호출합니까?

~에서매직 SysRq 키

마법의 SysRq 키는 Linux 커널이 이해하는 키 조합으로, 이를 통해 사용자는 다양한 작업을 수행할 수 있습니다.낮은 수준의 명령 시스템 상태와 관계없이. 정지 상태를 복구하거나 파일 시스템을 손상시키지 않고 컴퓨터를 다시 시작하는 데 자주 사용됩니다.

낮은 수준의 명령은 무엇입니까?테이블의 키옮기다?

터미널에서 실행할 수 있는 프로그램인가요?

이 키는 gnome 또는 Unity의 단축키와 어떻게 다릅니까?

답변1

리눅스 커널 소스 코드에서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 커널 소스 하위 디렉터리에서도 찾을 수 있습니다.

관련 정보