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