Sys Rq + r cihazından kurtarma


25

X sunucumun gerçekten kötü bir kilitlenmesi vardı ve klavyemi X'ten çıkarmak ve bir konsola girmek için bir Sys Rq + r yapmak zorunda kaldım . Sistemimi kilitleyen süreci öldürdüm ve hala çalışan X sunucumda çalışmaya devam ettim.

Artık ne zaman bir pencereyi öldürmek için Alt + F4 tuşlarına basarsam, sistemim aktif pencereyi öldürmek yerine 4. konsola geçer. Öyle görünüyor ki klavyem hala serbest modda.

Çalışan X sunucumda çalışmaya devam edebilmem için önceki Sys Rq + r komutumu nasıl geri alabilirim?

Yanıtlar:


30

Bu soruyu sorduktan hemen sonra çözümü kendim buldum.

X'in çalıştığı konsolu geri getirmek için (genellikle tty7), ASCII modundan RAW moduna geçmek için aşağıdaki komutu çalıştırın:

sudo kbd_mode -s -C /dev/tty7

Ve şimdi her şey tekrar beklendiği gibi çalışıyor. :)

Soruda daha fazla bilgi var: Ham / unraw klavye modu ne anlama geliyor?


Teşekkürler! Yine bir kerede tüm uçbirim için bunu yapmak için bir yol, unRaw yaptığı aynı yol varsa anlamaya çalışıyorum ...
mods iyi tedavi

3
@phyzome "Normal" (metin modu) tty ASCII (XLATE) veya UTF-8 (UNICODE) modunu beklediğinden, tüm tty'ler için bunu yapmak istemezsiniz. Aksi takdirde, oraya yazamazsınız (bu sadece SysRq-R'nin düzelttiği şeydir). Eğlenmek için, kbd_mode -s -C /proc/self/fd/0bir tty deneyin , kırıldığını görün, ardından SysRq-R ile düzeltin.
kimse

1
X'in içinde çalıştığı TTY'yi kullanıyorsanız, kullanabilirsiniz sudo kbd_mode -s -C /dev/tty$(sudo fgconsole).
TSJNachos117

0

Kendinizi bu belirli komut için web'de bir defadan fazla ararsanız (yaptığım gibi), klavyeyi kullanılan TTY'ye yeniden yakalamak için aşağıdaki kabuk komut dosyasını kullanabilirsiniz:

#!/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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.