SSH 연결을 통해 SysRq 명령을 보내는 방법은 무엇입니까?

SSH 연결을 통해 SysRq 명령을 보내는 방법은 무엇입니까?

저는 BeagleboneBlack을 기반으로 하는 맞춤형 보드를 개발 중이며
최근에 시스템 중단 문제를 디버깅하고 있었습니다. 을 사용하여 디버그 콘솔에 액세스할 수 있고 + , F ` minicom키 조합을 사용하여 로깅을 활성화 할 수 있습니다.CtrlA

그러나 모든 생산 장비에는 디버그 콘솔이 없습니다. 을 통해 연결할 수는 없지만 minicomssh 연결을 통해 액세스할 수 있습니다.

이제 SSH 연결을 통해 SysRq 키를 보낼 수 있는 방법이 있는지 알고 싶습니다.

작동 중인 장치에서 echo h > /proc/sysrq-trigger출력을 사용하면 ssh에서 인쇄하는 대신 디버그(또는 직렬) 콘솔(minicom)에 인쇄됩니다.:(
이 출력을 SSH 터미널로 보내는 방법이 있습니까?

시스템이 잠겨 있으면 SSH 연결이 비활성화되기 때문에 제가 묻는 질문이 다소 불가능하다는 것을 알고 있습니다.하지만 만일을 대비해 연결이 활성화된 경우 SysRq 키를 보낼 수 있는 방법이 있는지 알고 싶습니다.

답변1

dmesgssh 터미널에 표시할 응답을 직접 얻을 수는 없지만 커널의 출력은 (일반적 으로) 기록 되므로 인쇄된 내용을 볼 /var/log/messages수 있습니다 .echo h > /proc/sysrq-trigger; dmesg | tail

답변2

SysRq 직접 기능은 콘솔에서만 사용할 수 있습니다.

표준 "VGA" 콘솔에서는 Alt 및 "Command"와 함께 사용되는 텍스트 키 SysRq("Print Screen"이라고도 함)입니다.

직렬 콘솔에서는 BREAK 신호를 통해 액세스할 수 있습니다.

그러나 SSH를 통해 SysRq에 직접 액세스할 수는 없으므로 이 /proc/sysrq-trigger파일을 사용해야 합니다.

커널 문서에서는 SysRq에 대한 자세한 내용과 다양한 플랫폼에서 다양한 키 조합이 작동하는 방식을 설명합니다.https://www.kernel.org/doc/Documentation/sysrq.txt

SysRq 출력은 커널에 의해 생성되므로 링 버퍼로 들어갑니다. 이는 를 읽어서 수행할 수 있습니다 dmesg.

또한 운영 체제 설정 방법에 따라 커널 출력을 파일로 보낼 syslog수 있습니다.rsyslogrsyslog

$ModLoad imklog
kern.*    -/var/log/kernel

systemd시스템 기반 시스템은 명령을 통해 이 로그를 노출할 수 있습니다 journalctl.

관련 정보