Sys Rq + rからの回復


25

Xサーバーのロックアップが非常に悪く、Sys Rq + rを実行してXからキーボードを解放し、コンソールに入る必要がありました。システムをロックしているプロセスを強制終了し、まだ実行中のXサーバーで作業を続行できました。

たとえば、Alt + F4キーを押してウィンドウを強制終了すると、システムはアクティブなウィンドウを強制終了する代わりに4番目のコンソールに切り替わります。そのため、私のキーボードはまだリリースモードになっているようです。

実行中のXサーバーで作業を続行できるように、以前のSys Rq + rコマンドを元に戻すにはどうすればよいですか?

回答:


30

私はこの質問をした直後に自分で解決策を見つけました。

Xが実行されているコンソール(通常tty7)に戻すには、ASCIIモードからRAWモードに次のコマンドを実行します。

sudo kbd_mode -s -C /dev/tty7

そして今、すべてが再び期待どおりに動作します。:)

質問で利用可能な詳細情報:raw / unrawキーボードモードとはどういう意味ですか?


ありがとう!それでも一度にすべてのttyのためにそれを行うための方法、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

この特定のコマンドをWebで何度も検索している場合(私がやったように)、次のシェルスクリプトを使用して、使用中の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.