Sys Rq + r에서 복구


25

나는 X 서버를 정말로 잘못 잠 갔고 X에서 키보드를 풀고 콘솔에 들어가기 위해 Sys Rq + r 을 수행해야했습니다 . 시스템을 잠그고 있던 프로세스를 종료하고 여전히 실행중인 X 서버에서 작업을 계속할 수있었습니다.

이제 예를 들어 Alt + F4를 눌러 창을 죽일 때마다 시스템은 활성 창을 죽이지 않고 네 번째 콘솔로 전환합니다. 키보드가 여전히 해제 모드 인 것 같습니다.

실행중인 X 서버에서 작업을 계속할 수 있도록 이전 Sys Rq + r 명령을 어떻게 실행 취소합니까?

답변:


30

이 질문을 한 직후 해결책을 찾았습니다.

X가 실행중인 콘솔 (일반적으로 tty7)을 ASCII 모드에서 RAW 모드로 전환하려면 다음 명령을 실행하십시오.

sudo kbd_mode -s -C /dev/tty7

이제 모든 것이 다시 예상대로 작동합니다. :)

질문에서 더 많은 정보를 얻을 수 있습니다 : raw / unraw 키보드 모드는 무엇을 의미합니까?


감사! 그럼에도 불구하고 한 번에 모든 터미날을 위해 그것을 할 수있는 방법, unRaw가하는 같은 방법이 있는지 알아 내려고 ...
당신의 개조 잘 치료

3
@phyzome "일반"(텍스트 모드) tty는 ASCII (XLATE) 또는 UTF-8 (UNICODE) 모드를 필요로하기 때문에 모든 tty에 대해이 작업을 수행하고 싶지 않습니다. 그렇지 않으면 입력 할 수 없습니다 (SysRq-R이 수정 한 것입니다). 재미 kbd_mode -s -C /proc/self/fd/0를 위해 tty를 시도 하고 깨고 SysRq-R로 수정하십시오.
아무도

1
X가 실행중인 TTY를 사용하는 경우을 사용할 수도 있습니다 sudo kbd_mode -s -C /dev/tty$(sudo fgconsole).
TSJNachos117

0

이 특정 명령에 대해 웹을 두 번 이상 검색하면 (내가 한 것처럼) 다음 셸 스크립트를 사용하여 키보드를 사용중인 TTY로 다시 캡처 할 수 있습니다.

#!/bin/bash

IFS=$'\n\t'
function ttys() {
    # find open files named `/dev/tty?` from commands named `Xorg`
    lsof -Fn -c Xorg -a /dev/tty? | \
      egrep '^n' |                  \
      sed -r 's/^n(.+)$/\1/g' |     \
      sort |                        \
      uniq
}

tty=$(ttys)
count_ttys=$(wc -l <<< $tty )

if [[ $count_ttys -gt 1 ]]; then
  echo 'more than one tty in use, exiting'
  exit 1
fi

echo binding keyboard to $tty
sudo kbd_mode -s -C $tty
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.