Sys Rq + r से पुनर्प्राप्त


25

मेरे पास मेरे एक्स सर्वर का वास्तव में खराब लॉकअप था और मुझे अपने कीबोर्ड को एक्स से मुक्त करने और कंसोल में जाने के लिए एक एसआईएस आरक्यू + आर करना पड़ा । मैं उस प्रक्रिया को मारने में सक्षम था जो मेरे सिस्टम को लॉक कर रही थी, और मेरे अभी भी चल रहे एक्स सर्वर में अपना काम जारी रखा।

अब जब भी मैं उदाहरण के लिए एक विंडो को मारने के लिए Alt + F4 धक्का देता हूं, तो मेरा सिस्टम सक्रिय विंडो को मारने के बजाय 4 वें कंसोल पर स्विच करता है। तो ऐसा लगता है कि मेरा कीबोर्ड अभी भी जारी मोड में है।

मैं अपने पिछले Sys Rq + r कमांड को पूर्ववत् कैसे कर सकता हूं, जैसे कि मैं अपने रनिंग एक्स सर्वर में अपना काम जारी रख सकता हूं?

जवाबों:


30

मुझे यह सवाल पूछने के बाद ही इसका समाधान मिला।

कंसोल को वापस स्विच करने के लिए जिसमें X चल रहा है (आमतौर पर tty7), ASCII मोड से RAW मोड के लिए निम्नलिखित कार्य निष्पादित करें:

sudo kbd_mode -s -C /dev/tty7

और अब सब कुछ फिर से उम्मीद के मुताबिक काम करता है। :)

प्रश्न में उपलब्ध अधिक जानकारी: कच्चे / अनवार कीबोर्ड मोड का क्या अर्थ है?


धन्यवाद! अभी भी यह पता लगाने की कोशिश की जा रही है कि एक ही बार में सभी टैटियों के लिए ऐसा करने का कोई तरीका है, उसी तरह अनरॉव करता है ...
अपने मॉड्स के साथ अच्छी तरह से व्यवहार करें

3
@phyzome आप सभी ttys के लिए ऐसा नहीं करना चाहते हैं, क्योंकि "सामान्य" (टेक्स्ट-मोड) tty ASCII (XLATE) या UTF-8 (UNICODE) मोड की अपेक्षा करता है। अन्यथा आप वहां टाइप नहीं कर सकते (यह सिर्फ SysRq-R फिक्स है)। मज़े के लिए, kbd_mode -s -C /proc/self/fd/0एक ट्टी पर प्रयास करें , इसे तोड़कर देखें, फिर इसे SysRq-R द्वारा ठीक करें।
कोई भी

1
यदि आप TTY का उपयोग कर रहे हैं जिसमें X चल रहा है, तो आप भी उपयोग कर सकते हैं sudo kbd_mode -s -C /dev/tty$(sudo fgconsole)
TSJNachos117

0

यदि आप अपने आप को इस विशेष कमांड के लिए वेब पर एक से अधिक बार खोजते हैं (जैसे मैंने किया है) तो आप कीबोर्ड को उपयोग में लाने के लिए निम्नलिखित शेल स्क्रिप्ट का उपयोग कर सकते हैं:

#!/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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.