SyRq를 사용하는 이 키 시퀀스가 ​​작동하지 않는 이유는 무엇입니까?

SyRq를 사용하는 이 키 시퀀스가 ​​작동하지 않는 이유는 무엇입니까?

zshell과 Mate 데스크탑이 포함된 Fedora 20이 있습니다. 나는 방금 이것을 발견했습니다.SysRq 키 사용에 대한 기사, 그러나 거기에 표시된 결과는 제공되지 않습니다. SysRq 키 조합으로 위에 "Print Scr"이 있는 "Home"이라고 표시된 키와 함께 Alt를 사용하고 있습니다.

노란색 "FN" 키도 눌러 보았지만 별 차이가 없었습니다.

"시스템이 완전히 손상된 경우에도 재부팅" 순서가 매우 유용해 보이기 때문에 제가 뭘 잘못하고 있는지 알고 싶습니다.

답변1

SysRq 조합이 비활성화되었을 수 있습니다. 이것이 작동하려면 다음과 같은 몇 가지 사항이 충족되어야 합니다.

  • CONFIG_MAGIC_SYSRQ커널 구성을 활성화 해야 합니다 .
  • kernel.sysrqSysRq 조합을 해석할 수 있는 값으로 sysctl을 설정 해야 합니다 .

kernel.sysrq기능을 활성화/비활성화하는 비트마스크입니다.

  • 0 - 완전히 비활성화됨
  • 1 - 완전히 활성화됨
  • 2 - 콘솔 로깅 수준 제어 허용
  • 4 - 키보드 제어 허용
  • 8 - 프로세스 덤프 제어 허용
  • 16 - sync()통화 제어 허용
  • 32 - 읽기 전용으로 다시 마운트 허용
  • 64 - 프로세스 신호 허용
  • 128 - 시스템 전원 상태 변경 허용(재부팅/전원 끄기 등)
  • 256 - 실시간으로 실행되는 라이센스 작업 허용

모든 SysRq 기능을 활성화하려는 경우 도구를 사용하여 일시적으로 값을 설정할 수 있습니다 sysctl.

sysctl -w kernel.sysrq=1

이 작업을 영구적으로 수행하려면 다음 줄을 추가하세요 /etc/sysctl.conf.

kernel.sysrq = 1

/etc/sysctl.conf그런 다음 를 실행하여 시스템이 설정을 다시 로드하도록 할 수 있습니다 sysctl -p.

답변2

일반적으로 버튼을 누르면 키보드는 단일 키코드를 생성합니다. OS는 키코드를 수신하고 일부 키 매핑을 적용하며 기본 하드웨어와 독립적으로 키 조합을 처리하려고 시도합니다.

SysRq 메커니즘은 약간 다릅니다. 키보드는 조합을 포착하고 마치 단일 버튼을 누른 것처럼 특수 키코드를 OS에 보냅니다. Linux 커널은 X 서버와 같은 상위 수준 애플리케이션에 입력을 전달하지 않고 특수 키코드를 포착하여 내부적으로 처리합니다. 이는 두 가지 결과를 의미합니다.

  1. 키 조합은 실제로 키보드에 따라 다릅니다. 키보드는 모든 키 누르기를 자체적으로 포착해야 하며 키보드만 실제 SysRq 키가 있는 위치와 특수 키코드 전송을 트리거하는 조합을 "알고" 있습니다. 그래서:

    • SysRq는 반드시 "Home" 또는 "Print Screen"과 동일한 버튼에 있을 필요는 없습니다. 검색해 보십시오. 일반적으로 "SysRq"로 명시적으로 표시됩니다.
    • Ctrl+Alt+SysRq+b 또는 등 의 다른 조합을 시도해 보십시오 Ctrl+Alt+Fn+SysRq+b(경고, 성공하면 시스템이 재부팅됩니다). 키가 있는 키보드에서는 Fn일반적으로 실제 키에 도달하려면 해당 키를 눌러야 하므로 SysRq조합에 키가 포함될 가능성이 높습니다 Fn.
  2. 실제로 조합이 올바른지 알 수 있습니다. xev터미널에서 실행하고 xev의 창에 초점을 맞춘 다음 키보드의 일부 버튼을 누르면 터미널에 이벤트가 나타나는 것을 볼 수 있습니다. 올바른 조합을 얻으면 이벤트가 커널에 의해 포착되고 X 서버로 전달되지 않기 때문에 이벤트를 받아서는 안 됩니다.

또한 다음 문서를 참조하세요.https://www.kernel.org/doc/Documentation/sysrq.txt

관련 정보