Ripristino da Sys Rq + r


25

Ho avuto un brutto blocco del mio server X e ho dovuto fare un Sys Rq + r per rilasciare la mia tastiera da X ed entrare in una console. Sono stato in grado di interrompere il processo che stava bloccando il mio sistema e continuare il mio lavoro nel mio server X ancora in esecuzione.

Ora ogni volta che premo Alt + F4 per uccidere una finestra, il mio sistema passa alla 4a console invece di uccidere la finestra attiva. Quindi sembra che la mia tastiera sia ancora in modalità di rilascio.

Come posso annullare il mio precedente comando Sys Rq + r, in modo da poter continuare il mio lavoro sul mio server X in esecuzione?

Risposte:


30

Ho trovato la soluzione da solo dopo aver fatto questa domanda.

Per tornare alla console in cui X è in esecuzione (di solito tty7), dalla modalità ASCII alla modalità RAW, eseguire il comando seguente:

sudo kbd_mode -s -C /dev/tty7

E ora tutto funziona di nuovo come previsto. :)

Maggiori informazioni disponibili nella domanda: cosa significa modalità tastiera non elaborata / non elaborata?


Grazie! Sto ancora cercando di capire se c'è un modo per farlo per tutte le tty in una volta, allo stesso modo in cui unRaw fa ...
tratta bene le tue mod

3
@phyzome Non vuoi farlo per tutte le tty, poiché la tty "normale" (modalità testo) prevede la modalità ASCII (XLATE) o UTF-8 (UNICODE). Altrimenti non è possibile digitare lì (è proprio quello che SysRq-R risolve). Per divertimento, prova kbd_mode -s -C /proc/self/fd/0un tty, guardalo rompersi, quindi risolvilo con SysRq-R.
nessuno

1
Se stai usando il TTY in cui X è in esecuzione, puoi anche usare sudo kbd_mode -s -C /dev/tty$(sudo fgconsole).
TSJNachos117,

0

Se ti ritrovi a cercare sul web questo particolare comando più di una volta (come ho già fatto) puoi usare il seguente script di shell per riacquistare la tastiera sul TTY in uso:

#!/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.