जब कोई systemd / init (जैसे init = / bin / bash) का उपयोग न हो तो पावरऑफ कैसे करें?


9

poweroffशिकायत करता है कि यह डीबस के माध्यम से सिस्टमड से कनेक्ट नहीं कर सकता (बेशक, यह जीवित नहीं है)। मैंने यह सोचकर syncपीछा किया kill $$कि 1 पीड़ मरना कर्नेल को पॉवरऑफ के लिए जिम्मेदार ठहराएगा, लेकिन इससे कर्नेल घबराहट हुई। मैंने फिर पावरऑफ़ को लागू करने के लिए पावर बटन को रखा।

इस परिदृश्य में बिजली बंद करने का सबसे उचित तरीका क्या है?


सिस्टमैट टूलसेट स्थापित है कि इस सवाल का एक अस्थिर निहित आधार है। जब वास्तव में "कोई सिस्टमड नहीं होता है" तो इसका अर्थ है कि कोई भी सिस्टम टूलसेट स्थापित नहीं किया गया है, जो कि शीर्षक को कैसे पढ़ा जा सकता है, इसके जवाब अलग-अलग हैं; और शायद यह अपने आप में एक अलग सवाल है।
JdeBP

@JdeBP आप सही हैं, केवल शीर्षक पढ़ रहे हैं और init=/bin/bashसंकेत / निहितार्थ को अनदेखा कर रहे हैं , यह अस्पष्ट है कि सिस्टमड स्थापित है या नहीं। मेरा मतलब था कि कोई सिस्टमड चल रहा है । किसी भी मामले में, कोई भी चल रही प्रणाली नहीं है, मुझे लगा कि सिस्टम टूलसेट बेकार हो जाएगा और यह जवाब sysrq के बारे में उन जैसे अन्य साधनों का उपयोग करेगा।
JoL

जवाबों:


10

आपके द्वारा माउंट किए गए फ़ाइल सिस्टम को अनमाउंट करें। रूट फाइलसिस्टम एक विशेष मामला है; इसके लिए आप उपयोग कर सकते हैं mount / -o remount,ro। लिनक्स पर, umount /काम करने के लिए भी होता है, क्योंकि यह प्रभावी रूप से पूर्व कमांड में बदल जाता है।


उन्होंने कहा, जब तक कि आप बहुत अधिक के बारे में चिंता करने की जरूरत नहीं है

  1. आपने एफएटी जैसे पुराने फाइल सिस्टम को माउंट किया है - जैसा कि ईएफआई सिस्टम विभाजन द्वारा उपयोग किया जाता है - या एक्सटी 2, जो जर्नलिंग या समकक्ष लागू नहीं करता है। एक आधुनिक फाइल सिस्टम के साथ, syncपर्याप्त माना जाता है, और अगले बूट पर फाइलसिस्टम बहुत जल्दी ठीक हो जाएगा।
  2. आपने एक चल रही प्रक्रिया को छोड़ दिया हो सकता है जो कि फाइलसिस्टम को लिखता है, और आपने इसे साफ-सुथरा बंद करने का इरादा किया था। उस मामले में यह फाइलसिस्टम को हटाने का प्रयास करने के लिए उपयोगी है, क्योंकि umount विफल हो जाएगा और शेष लेखक के बारे में याद दिलाने के लिए एक व्यस्त त्रुटि दिखाएगा।

उपरोक्त महत्वपूर्ण हिस्सा है। उसके बाद, आप हार्डवेयर का उपयोग करके आसानी से बिजली बंद कर सकते हैं poweroff -f। या के साथ रिबूट reboot -f

वहाँ एक है systemdकी विशिष्ट बराबर poweroff -f: systemctl poweroff -f -f। हालाँकि poweroff -fएक ही बात करता है, और systemdइस आदेश का समर्थन करता है , भले ही इसे SysV संगतता के बिना बनाया गया हो।


तकनीकी रूप से, मुझे याद है कि मेरे यूएसबी हार्ड ड्राइव को विंडोज "सुरक्षित हटाने" या समकक्ष की आवश्यकता के रूप में प्रलेखित किया गया था। लेकिन यह आवश्यकता पावरफेल सुरक्षित नहीं है, और लिनक्स वैसे भी सामान्य बंद के दौरान ऐसा नहीं करता है। इसका बेहतर अर्थ है कि कताई करते समय आपको हार्ड ड्राइव को जॉग नहीं करना चाहिए - इसे अनप्लग करने की कोशिश सहित। एक पूरी शक्ति बंद ड्राइव कताई बंद कर देना चाहिए। आप शायद इसे सुन नहीं सकते, महसूस कर सकते हैं या देख सकते हैं कि यह :-) नहीं है।


बस इतना पता है, मैं स्वीकार करना नहीं भूल रहा हूँ। यह सिर्फ इतना है कि मैंने दूसरों को (शायद अलग-अलग टाइमज़ोन में) सवाल का जवाब देने से पहले कुछ समय इंतजार करने की सलाह दी है और सवाल का जवाब देने का मौका दिया है।
जोएल

sync()ext2 के लिए पर्याप्त है। यह गंदे होने के बारे में शिकायत करेगा लेकिन सारांश जानकारी को छोड़कर वास्तव में दूषित नहीं होगा। मैं आमतौर पर init = / bin / bash या किसी भी स्थानीय समकक्ष को आपातकालीन स्थिति मानता हूं।
यहोशू

@ जोशुआ ext2 fs अद्भुत है । लेकिन बड़े फाइल सिस्टम पर fsck का प्रदर्शन जर्नल रिप्ले की तुलना में बहुत खराब है। एक आपातकालीन स्थिति में, आप अस्वस्थ होने के कारण विलंब नहीं करना चाहते हैं।
sourcejedi

आप fsck.mode=skipसही के बारे में जानते हैं ?
यहोशू

3
@ जोशुआ जो प्रासंगिक है क्यों? यदि आप एक अस्वच्छता करते हैं, तो आपको अंततः एफएस की मरम्मत करने की आवश्यकता होगी। fsck.mode=skipएक अस्वस्थ के बाद सामान्य रूप से बूट करने के लिए उपयोग न करें !
sourcejedi

5

मैं बस दो कमांड के नीचे निष्पादित करूंगा:

echo s > /proc/sysrq-trigger    <= For sync
echo o > /proc/sysrq-trigger    <= For shutdown the system

मान लें कि मैजिक कुंजी कर्नेल में सक्षम है


4

ठीक है, इसलिए यह मेरे लिए हुआ कि मेरे पास विकल्प था exec init। वहां से, मैं शायद बाद में सक्षम हो जाऊंगा poweroff। मुझे आश्चर्य है कि अगर बेहतर विकल्प हैं, हालांकि।


@ जी-मैन यह सामान्य बूट प्रक्रिया शुरू नहीं करेगा और आपको अंततः अपना सामान्य शेल देगा?
मूरू

2
@ मरमू आप कर सकते थे exec init 0। यह सभी init सिस्टम के साथ काम नहीं करेगा, लेकिन एक ही शटडाउन अनुक्रम से गुजरेगा।
ऑस्टिन हेमेलर्गरन

1
मुझे लगता है कि यह अन्य कारणों से एक बहुत अच्छा जवाब है; विशेष रूप से क्योंकि अधिकांश बिजली बंद करना रिबूटिंग के रूप में वांछित नहीं है और यह क्षति को ठीक करने के बाद रिबूट से बचा जाता है।
यहोशू

1
@ जोशुआ सुविधाजनक है, लेकिन अगर आप सबसे सुरक्षित होना चाहते हैं, तो अक्सर पूर्ण बूट प्रक्रिया कार्यों की जांच करना एक अच्छा विचार है :-)।
सोर्सजेडी

3

प्रभावी रूप से, ताऊ रिबूट (2) syscall को कॉल करना चाहते हैं ।

ऐसा करने के दो तरीके:

  1. भागो reboot -fया poweroff -f, यह reboot(2)सीधे कॉल करना चाहिए ।

  2. यदि आप वास्तविक लिनक्स वर्चुअल टर्मिनल (GUI टर्मिनल एमुलेटर नहीं) पर हैं, तो Ctrl+ Alt+ दबाकर Delete

ध्यान दें कि कीबोर्ड शॉर्टकट को कुछ उपयोगकर्ता अंतरिक्ष कार्यक्रम (आमतौर पर init) द्वारा अक्षम किया जा सकता है, जब अक्षम शॉर्टकट शॉर्टकट init को एक संकेत भेजेगा।

उपरोक्त सभी आदेशों को umount-ing के बाद सभी डिस्क या रिमाउंटिंग के रूप में केवल पढ़ने के लिए किया जाना चाहिए, और सिंक चल रहा है, अन्यथा आप अलिखित डेटा खो सकते हैं। यदि आपका शेल एकमात्र प्रक्रिया है, तो सिंक पर्याप्त हो सकता है।


1

आप अपने कंप्यूटर को बंद करने के लिए मैजिक SysRq कुंजियों ( https://en.wikipedia.org/wiki/Magic_SysRq_key ) का उपयोग कर सकते हैं।

ठीक से बंद करने के लिए, आप निम्नलिखित का उपयोग कर सकते हैं (उद्धरण प्रपत्र विकिपीडिया):

मैजिक SysRq कुंजी का एक सामान्य उपयोग लिनक्स कंप्यूटर का एक सुरक्षित रिबूट प्रदर्शन करना है जो अन्यथा लॉक हो गया है (abbr। REISUB )। यह fsckरिबूट पर आवश्यक होने से रोक सकता है और कुछ कार्यक्रमों को बिना सहेजे हुए कार्य के आपातकालीन बैकअप को बचाने का मौका देता है। [5]   QWERTY (या AZERTY) स्मृति सहायकों: " आर aising lephants मैं रों एसयू tterly बी oring", " आर eboot ven मैंएस ystem यू tterly बीरोकेन "या बस शब्द" BUSIER "पीछे की ओर पढ़ा जाता है, अक्सर निम्नलिखित SysRq-Key अनुक्रम को याद रखने के लिए उपयोग किया जाता है:

  • un Raw (कीबोर्ड का नियंत्रण X से वापस लें),
  • टी Erminate (सभी प्रक्रियाओं के लिए SIGTERM भेजें, उन्हें इनायत करने के लिए अनुमति देता है),
  • k Ill (सभी प्रक्रियाओं के लिए SIGKILL भेजें, उन्हें तुरंत समाप्त करने के लिए मजबूर करें),
  • Sync (डिस्क में फ्लश डेटा),
  • Unmount (केवल पढ़ने के लिए सभी फाइल सिस्टम को रिमाउंट करें),
  • पुनः Boot

लेकिन "पावर एफएफ" के लिए अंतिम बी को (एज़र / क्यूवर्टी के साथ) प्रतिस्थापित करना


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