我对X服务器的锁定非常糟糕,必须执行Sys Rq + r才能从X释放键盘并进入控制台。我能够终止锁定系统的进程,并在仍在运行的X服务器上继续工作。
现在每当我按Alt + F4杀死一个窗口时,我的系统就会切换到第4个控制台,而不是杀死活动窗口。因此,我的键盘似乎仍处于释放模式。
如何撤消以前的Sys Rq + r命令,以便可以在正在运行的X服务器上继续工作?
我对X服务器的锁定非常糟糕,必须执行Sys Rq + r才能从X释放键盘并进入控制台。我能够终止锁定系统的进程,并在仍在运行的X服务器上继续工作。
现在每当我按Alt + F4杀死一个窗口时,我的系统就会切换到第4个控制台,而不是杀死活动窗口。因此,我的键盘似乎仍处于释放模式。
如何撤消以前的Sys Rq + r命令,以便可以在正在运行的X服务器上继续工作?
Answers:
提出这个问题后,我自己找到了解决方案。
要将运行X的控制台(通常是tty7)从ASCII模式切换回RAW模式,请执行以下命令:
sudo kbd_mode -s -C /dev/tty7
现在一切都按预期进行了。:)
问题中提供了更多信息:原始/原始键盘模式是什么意思?
kbd_mode -s -C /proc/self/fd/0
使用tty,看看它是否损坏,然后通过SysRq-R对其进行修复。
sudo kbd_mode -s -C /dev/tty$(sudo fgconsole)
。
如果您发现自己在网络上多次搜索该特定命令(如我所做的那样),则可以使用以下shell脚本将键盘重新捕获为正在使用的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