विशेषताएं :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key है जिसके द्वारा मूल काम पर आधारित था
क्रेडिट
Mydraal द्वारा लिखित
एडम Sulmicki द्वारा अपडेट
जेरेमी एम डोलन 2001/01/28 10:15:59 द्वारा अपडेट
जोड़ा गया क्राउनर डनवंत द्वारा
https://askubuntu.com/a/11194/102029 mneiss ने लॉन्चपैड के लिए लिंक प्रदान किए।
अंतर्वस्तु
सिसरक क्या है?
RESIUB (O) काम क्यों नहीं करता है?
1 मैं जिस तरह से चाहूं, वैसा बर्ताव करने के लिए मुझे सिसरक कैसे हो सकता है?
1.1 जादू SysRq कुंजी क्या है?
1.2 मैं जादू SysRq कुंजी को कैसे सक्षम करूं?
1.3 मैं जादू SysRq कुंजी का उपयोग कैसे करूँ?
1.4 'कमांड' कीज क्या हैं?
1.5 ठीक है, तो मैं उनके लिए क्या उपयोग कर सकता हूं?
1.6 समस्या निवारण
1.6.1 initcripts चलाने से पहले हैंगिंग
1.6.2 कभी-कभी SysRq का उपयोग करने के बाद 'अटक' लगता है, मैं क्या कर सकता हूं?
1.6.3 मैंने SysRq को मारा, लेकिन ऐसा कुछ नहीं हुआ, क्या गलत है?
1.6.4 मैं एक मॉड्यूल में SysRQ प्रमुख घटनाओं को जोड़ना चाहता हूं, यह कैसे काम करता है?
1.6.5 निष्कर्ष
1.6.6 परिशिष्ट
नोट।
आपको सहायक सामग्री तालिका का उपयोग करने के लिए Ctrl+ Fका उपयोग करना पड़ सकता है ।
SysRq क्या है?
यह ठंड या सिस्टम फ़ाइल क्षति या डेटा की हानि के लिए अग्रणी डिस्क भ्रष्टाचार के जोखिम limitising साथ बंद करने के बाद मशीन का उपयोग फिर से का एक आम अच्छी तरह से जाना जाता है और इस्तेमाल किया विधि का उपयोग करने के लिए है
Alt+ SysRq+ rऔर फिर sऔर फिर eऔर फिर iऔर फिर uउसके बाद और bऔर / या यदि आवश्यक हो ( o)
यह कई (यानी खुद और जेम्स) के लिए उम्मीद के मुताबिक काम नहीं कर रहा है, सभी प्रकार के स्वादों के माध्यम से> = 8.04LTS से वर्तमान 13.04 रिलीज।
RESIUB (O) काम क्यों नहीं करता है?
लॉन्चपैड बग 194676 पर पाए गए इस बग विवरण पर विचार करें :
समस्या का विवरण:
डिफ़ॉल्ट रूप से उबंटू डेस्कटॉप सिस्टम पर डिफ़ॉल्ट रूप से SysRq सक्षम है जो कि अमूल्य है जब एक सिस्टम लॉक हो गया है और आप इसे यथासंभव धीरे से रोकना चाहते हैं या समस्या को डीबग करना चाहते हैं। हालांकि कई लोग आश्चर्यचकित हैं कि आप इसे वर्तमान मेमोरी की सामग्री को कीबोर्ड से केवल कंसोल (या dmesg) के साथ डंप करने के लिए भी कह सकते हैं।
openSUSE ने अपने SysRq पर 176 का एक डिफ़ॉल्ट बिटमास्क सेट किया है जो डिफ़ॉल्ट रूप से आपको सिंक, रिबूट और "रीमाउंट-रीड-ओनली" को प्रतिबंधित करता है। यह डिफ़ॉल्ट रूप से sysrq का उपयोग करने वाले लोगों को स्मृति का निरीक्षण करने के लिए रोकता है जो समझदार लगता है।
उबंटू डेवलपर्स ने इस बारे में कुछ करने की आवश्यकता को देखा और उल्लेखित अवलोकन की संभावित जटिलताओं को देखते हुए सबसे अच्छा समाधान यह है कि डिफ़ॉल्ट रूप से बिटस्मस्क 176 sysrq को लागू करने के लिए उपयोगकर्ता इनपुट की आवश्यकता पैदा करके sysrq को सेट करें जैसा कि वे चाहते हैं। Bitmask 176 केवल अनुमति देता है S, U, Bजो सिंक, रिमाउंट घुड़सवार विभाजन और रिबूट है।
पूरी बग रिपोर्ट और टिप्पणियों को पढ़ने से कुछ विकल्प उजागर होंगे जो आपके सिस्टम पर लागू हो सकते हैं।
विभिन्न हार्डवेयर, कर्नेल, कीबोर्ड और बिटकॉम्स के संचित प्रभाव का मतलब है कि sysrq अलग-अलग लोगों के लिए अलग-अलग व्यवहार कर रहा है।
Txt आउटपुट प्राप्त करने का एक तरीका यह है कि आपका सिस्टम sysrq का उपयोग कैसे कर रहा है, tty से sysrq कमांड को लागू करना है (जब सिस्टम ताले / फ्रीज से पीड़ित नहीं है)। ऐसा करने से संकेत मिल सकता है कि sysrq पूरी तरह से अक्षम नहीं किया गया है, लेकिन बिटमास्क 176 का उपयोग कर रहा है।
13.04 डेस्कटॉप amd64 liveDVD पर / proc / sys / कर्नेल / sysrq की खोज करना और एक 13.04 डेस्कटॉप amd64 स्थापित होना डिफ़ॉल्ट की पुष्टि करता है वर्तमान में बिट्सस्क 176 पर sysrq को छोड़ना है।
यदि sysrq आपके लिए काम करता है; यह पूछने योग्य हो सकता है, "अगर मैंने 10-मैजिक-साइसरक सेटिंग्स को नहीं बदला है, तो किसने किया?"
1 मैं जिस तरह से चाहूं, वैसा बर्ताव करने के लिए मुझे सिसरक कैसे हो सकता है?
क्या एक संपादित प्रतिलिपि और https://fedoraproject.org/wiki/QA/Sysrq का पेस्ट है ।
1.1 जादू SysRq कुंजी क्या है?
यह एक 'जादुई' कुंजी कॉम्बो है जिसे आप हिट कर सकते हैं जो कि कर्नेल को जो कुछ भी कर रहा है उसकी परवाह किए बिना जवाब देगा, जब तक कि यह पूरी तरह से बंद न हो।
1.2 मैं जादू SysRq कुंजी को कैसे सक्षम करूं?
sysrq उबंटू कर्नेल में बनाया गया है, लेकिन बूट-टाइम पर डिफ़ॉल्ट रूप से अक्षम है, 10-मैजिक-sysrq.conf का उपयोग करके।
इसे बूट समय पर फिर से सक्षम करने के लिए, आपको /etc/sysctl.d/10-magic-sysrq.conf फ़ाइल को संपादित करना होगा। अर्थात इस लाइन को अनसुना करने से sysrq के सभी कार्य सक्षम हो जाएंगे:
# 1 - enable all functions of sysrq
जब SysRq के साथ संकलित किया जा रहा है, / proc / sys / कर्नेल / sysrq चला रहा है, तो SysRq कुंजी के माध्यम से आह्वान किए जाने वाले कार्यों को नियंत्रित करता है। यहाँ / proc / sys / कर्नेल / sysrq में संभावित मानों की सूची दी गई है:
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
176 - allow only sync, reboot and "remount read-only"
256 - allow nicing of all RT tasks
आप निम्न कमांड द्वारा फ़ाइल में मान सेट कर सकते हैं।
echo "number" >/proc/sys/kernel/sysrq
तो पूरी तरह से सक्षम करने के लिए यह होगा।
echo "1" > /proc/sys/kernel/sysrq
या कर भी सकते हैं।
sysctl -w kernel.sysrq=1
ध्यान दें।
/ Proc / sys / कर्नेल / sysrq का मान केवल कीबोर्ड के माध्यम से मंगलाचरण को प्रभावित करता है। / ऑपरेशन / sysrq- ट्रिगर के माध्यम से किसी भी ऑपरेशन का आह्वान हमेशा अनुमति देता है (व्यवस्थापक विशेषाधिकारों के साथ एक उपयोगकर्ता द्वारा-नीचे देखें)।
1.3 मैं जादू SysRq कुंजी का उपयोग कैसे करूँ?
उबंटू डेस्कटॉप
आप कुंजी कॉम्बो Alt+ SysRq+ दबाएं command key।
NB- इस अनुभाग में और अन्य सिस्टम और कीबोर्ड के लिए अन्य संभावित डिफ़ॉल्ट सेटिंग्स के लिए समस्या निवारण अनुभाग में नोट देखें।
अपने चयन के किसी भी चरित्र को सेट करना संभव है: ऑल आर्किटेक्चर
/ खरीद / sysrq-ट्रिगर के लिए एक चरित्र लिखें:
echo t > /proc/sysrq-trigger
नोट केT रूप में व्यवहार सेट करेगा SysRq
।
कुछ कीबोर्ड में एक कुंजी लेबल नहीं हो सकता है SysRq। SysRqकुंजी के रूप में भी जाना जाता है Print Screenकुंजी। इसके अलावा कुछ कीबोर्ड एक ही समय में दबाए जा रहे इतने सारे कुंजी को संभाल नहीं सकते हैं, इसलिए आपके पास Alt+ के साथ बेहतर भाग्य हो सकता है SysRq- SysRqफिर प्रेस करें command keyफिर सब कुछ जारी करें। QA का पूरा लेखन देखें, जो इस गाइड https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F पर आधारित है ।
1.4 'कमांड' कीज क्या हैं?
'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.
ध्यान दें।
SAK अनुभाग में नीचे दिए गए महत्वपूर्ण टिप्पणियां देखें।
'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)
1.5 ठीक है, तो मैं उनके लिए क्या उपयोग कर सकता हूं?
rजब आपका X सर्वर या svgalib प्रोग्राम क्रैश होता है तो Un aw बहुत आसान है।
सा k(सिक्योर एक्सेस की) उपयोगी है जब आप यह सुनिश्चित करना चाहते हैं कि कंसोल पर कोई ट्रोजन प्रोग्राम नहीं चल रहा है जो आपके पासवर्ड को तब पकड़ सकता है जब आप लॉगिन करने की कोशिश करेंगे। यह दिए गए कंसोल पर सभी प्रोग्रामों को मार देगा, इस प्रकार आपको यह सुनिश्चित करने में मदद करेगा कि जो लॉगिन प्रॉम्प्ट आप देख रहे हैं वह वास्तव में इनिट से है, कुछ ट्रोजन प्रोग्राम नहीं। अन्य लोग इसे (सिस्टम अटेंशन की) के रूप में उपयोगी पाते हैं जो तब उपयोगी होता है जब आप एक प्रोग्राम से बाहर निकलना चाहते हैं जो आपको कंसोल को स्विच करने नहीं देगा। (उदाहरण के लिए, X या svgalib प्रोग्राम।)
नोट।
अपने असली रूप में यह एक c2 अनुरूप प्रणाली में एक की तरह एक सच्चा SAK नहीं है, और इसे इस तरह से गलत नहीं किया जाना चाहिए।
bजब आप शट डाउन करने में असमर्थ हों तो Re oot अच्छा है।
ध्यान दें।
यह सामान्य है कि uपहले माउंट करने के लिए एक अच्छा अभ्यास माना जाता है
cजब सिस्टम लटका दिया जाता है तो क्रैशडम्प का उपयोग मैन्युअल रूप से रैशम्प को चालू करने के लिए किया जा सकता है।
ध्यान दें।
कर्नेल को CONFIG_KEXEC सक्षम किया गया है!
जब आपका सिस्टम लॉक हो जाता है तो सिंक बहुत अच्छा होता है, यह आपको sअपने डिस्क को ync करने की अनुमति देता है और निश्चित रूप से डेटा हानि और fscking की संभावना को कम करेगा।
चेतावनी
जब तक आप "ओके" और "डन" स्क्रीन पर दिखाई नहीं देते तब तक सिंक नहीं हुआ है। (यदि कर्नेल वास्तव में संघर्ष में है, तो आपको कभी भी OK या पूर्ण संदेश नहीं मिल सकता है।
Uमाउंट मूल रूप से Sync के समान ही उपयोगी है ।
Loglevels 0- 9उपयोगी है जब आपके कंसोल गिरी संदेशों जैसा कि आप देख नहीं करना चाहते से भर गया है कर रहे हैं। चयन करने 0से आपके कंसोल तक पहुंचने से सभी लेकिन सबसे ज़रूरी कर्नेल संदेशों को रोका जा सकेगा।
ध्यान दें।
यदि syslogd / klogd जीवित है, तो वे अभी भी लॉग इन होंगे
टी erm और k ill उपयोगी हैं यदि आपके पास किसी प्रकार की अपवाह प्रक्रिया है तो आप किसी अन्य तरीके से मारने में असमर्थ हैं, खासकर अगर यह अन्य प्रक्रियाओं को पैदा कर रहा है।
ध्यान दें।
जब बुरा कर्नेल आतंक का सामना करना Alt+ Sysrq+ eतो Alt+ Sysrq+ uतो Alt+ Sysrq+ iऔर अंत Alt+ Sysrq+b
1.6 समस्या निवारण
1.6.1 लटकाए जाने से पहले initscripts चलाएं
यदि मशीन को चलाने से पहले लटका दिया जाता है, तो बूट करने के लिए sysrq_always_enabled=1
1.6.2 कभी-कभी SysRq का उपयोग करने के बाद 'अटक' लगता है, मैं क्या कर सकता हूं?
दोहन shift, altऔर controlकीबोर्ड के दोनों किनारों पर, और एक अवैध sysrq अनुक्रम को फिर से मारना समस्या को ठीक करेगा। (यानी, कुछ की तरह alt+ sysrq+ z)।
एक और वर्चुअल कंसोल ( Ctrl+ Alt+ Fn1- Fn6) पर स्विच करना और फिर से वापस Ctrl+ Alt+ Fn7भी मदद करनी चाहिए।
1.6.3 मैंने मारा SysRq, लेकिन कुछ भी नहीं हुआ, क्या गलत है?
कुछ कीबोर्ड हैं जो SysRqपूर्व-परिभाषित 0x54 की तुलना में अलग-अलग स्केनोड भेजते हैं। इसलिए यदि आप SysRqएक निश्चित कीबोर्ड के लिए बॉक्स से बाहर काम नहीं करते हैं, showkey -s
तो उचित स्कैन्कोड अनुक्रम का पता लगाने के लिए दौड़ें । फिर setkeycodes <sequence> 84
इस क्रम को सामान्य SysRqकोड में परिभाषित करने के लिए उपयोग करें (84 0x54 के लिए दशमलव है)। इस कमांड को बूट स्क्रिप्ट में रखना शायद सबसे अच्छा है।
चेतावनी
आप showkey
दस सेकंड के लिए कुछ भी नहीं टाइप करके बाहर निकलें ।
1.6.4 मैं SysRqएक मॉड्यूल में महत्वपूर्ण घटनाओं को जोड़ना चाहता हूं , यह कैसे काम करता है?
तालिका के साथ एक मूल फ़ंक्शन को पंजीकृत करने के लिए, आपको सबसे पहले हेडर को शामिल करना include/linux/sysrq.h
होगा, यह आपकी ज़रूरत की हर चीज़ को परिभाषित करेगा। इसके बाद, आपको एक sysrq_key_op स्ट्रक्चर बनाना होगा, और इसके साथ पॉप्युलेट करना होगा ...
प्रमुख हैंडलर फ़ंक्शन आप उपयोग करेंगे।
SysRQ प्रिंट की मदद करने पर एक help_msg स्ट्रिंग, जो प्रिंट करेगा
एक एक्शन_एमएसजी स्ट्रिंग, जो आपके हैंडलर को कॉल करने से ठीक पहले प्रिंट होगी। आपके हैंडलर को 'sysrq.h' में प्रोटोटाइप के अनुरूप होना चाहिए
Sysrq_key_op बनने के बाद, आप कर्नेल फ़ंक्शन register_sysrq_key (इंट कुंजी, स्ट्रक्चर sysrq_key_op * op_p) कह सकते हैं; यह तालिका कुंजी 'कुंजी' में 'op_p' द्वारा इंगित किए गए ऑपरेशन को पंजीकृत करेगा, यदि तालिका में वह स्थान रिक्त है। मॉड्यूल अनलोड समय पर, आपको फ़ंक्शन को unregister_sysrq_key (int key, स्ट्रक्चर sysrq_key_op * op_p) पर कॉल करना होगा, जो कि 'op_p' द्वारा 'की' से इंगित की गई महत्वपूर्ण ऑप को हटा देगा, यदि और केवल तभी कि यह उस समय पंजीकृत है। स्लॉट। यदि आपने इसे पंजीकृत किया है, तो यह स्लॉट ओवरराइट हो गया है।
मैजिक SysRqसिस्टम एक महत्वपूर्ण ऑप लुकिंग टेबल के खिलाफ महत्वपूर्ण संचालन दर्ज करके काम करता है, जिसे 'ड्राइवर / चार / sysrq.c' में परिभाषित किया गया है। इस कुंजी तालिका में संकलित समय पर इसमें कई ऑपरेशन दर्ज किए गए हैं, लेकिन यह परिवर्तनशील है, और इंटरफ़ेस के लिए 2 फ़ंक्शन इसे निर्यात किया जाता है register_sysrq_key और unregister_sysrq_key। बेशक, कभी भी टेबल में एक अमान्य पॉइंटर न छोड़ें। अर्थात; जब आपका मॉड्यूल जिसे register_sysrq_key () बाहर निकलता है, तो इसे उपयोग की जाने वाली sysrq कुंजी तालिका प्रविष्टि को साफ करने के लिए unregister_sysrq_key () को कॉल करना होगा।
ध्यान दें।
तालिका में अशक्त संकेत हमेशा सुरक्षित होते हैं।
यदि किसी कारण से आपको handle_sysrq फ़ंक्शन को कॉल करने की आवश्यकता महसूस होती है, जिसे handle_sysrq नामक फ़ंक्शन के भीतर से जाना जाता है, तो आपको अवगत होना चाहिए कि आप एक लॉक में हैं (आप एक बाधा हैंडलर में भी हैं, जिसका अर्थ है कि नींद नहीं है!), इसलिए आपको इसके बजाय __handle_sysrq_nolock कॉल करना होगा।
1.6.5 निष्कर्ष
का प्रयोग करें Alt+ SysRq+ Sऔर फिर Uऔर फिर Bसिंक करने के लिए, सभी घुड़सवार फ़ाइल सिस्टम को पुन: माउंट करने के लिए और फिर रिबूट अगर जरूरत का प्रयास। सिस्टम फ़ाइलों में कोई चीज़ बदले बिना।
अगर Alt+ SysRq+ Bसिस्टम को रीबूट नहीं है कि यह क्रम में /etc/sysctl.d/10-magic-sysrq.conf संपादित करने के लिए आवेदन करने की अनुमति देने के लिए प्रयास आवश्यक हो सकता है Alt+ SysRq+ B(या / और Oबाद संपादन / proc / sys / गिरी / sysrq का उपयोग करके सिस्टम को रिबूट और सिस्टम को बंद करने में सक्षम करने के लिए sysrq बिटमास्क। आप ऊपर वर्णित किसी भी विधि द्वारा ऐसा कर सकते हैं।
1.6.6 APPENDIX:
यह भी देखें - http://ubuntuforums.org/showthread.php?t=617349 और https://www.kernel.org/doc/Documentation/sysrq.txt
Apple MacBook कीबोर्ड वालों के लिए sysrq के बारे में परेशानियों को देखें: https://help.ubuntu.com/community/AppleKeyboard और https://bugs.launchpad.net/mactel-support/+bug/262408
दिलचस्प रोचक जानकारी- बीबीसी कार्यक्रम "क्लिक" के 17 08 2013 के एपिसोड और "साइबरवारफेयर" लेख को देखने के बाद वास्तव में मेरा ध्यान आकर्षित किया। कार्यक्रम की अपनी वेबसाइट भी है यदि आप कार्यक्रम नहीं देख सकते हैं तो क्लिक करें । FAWC