सेंटोस को फिर से शुरू करने का सबसे अच्छा तरीका?


81

मैंने हमेशा कमांड का उपयोग किया:

shutdown -r now

हालाँकि, कभी-कभी यह MySQL समस्याओं का कारण बनता है।

CentOS को पुनरारंभ करने का सबसे सुंदर तरीका क्या है?

मैंने देखा है:

reboot

तथा

halt

मैं मशीन को धीरे से कैसे रिबूट कर सकता हूं?


3
rebootअनिवार्य रूप से एक उपनाम है shutdown -r... तो ... हाँ।
नाथन सी

क्या मेरे पोस्ट ने आपके प्रश्न का उत्तर दिया, या आपको कुछ और जानने की आवश्यकता है?
जोफ्री

यहां अभी तक टिप्पणी नहीं कर सकता, लेकिन मैं यहां रिबूट करने के बारे में एक चेतावनी देना चाहता था। यदि उदाहरण Amazon EC2 पर है, तो रिबूट -एच कर रहा है, उदाहरण को ईंट कर देगा, इसलिए ऐसा कभी न करें। इसके बजाय, यदि आपको शटडाउन या रिबूट करना है, तो इसे अमेज़ॅन के ऑनलाइन इंटरफ़ेस के माध्यम से करें, शेल से नहीं। यदि आप अपने उदाहरण को ईंट करते हैं, तो आप इसे रोक सकते हैं, वॉल्यूम को अलग कर सकते हैं, एक अलग उदाहरण बना सकते हैं, और नए वॉल्यूम के साथ आए पहले वॉल्यूम को अलग किए बिना, वॉल्यूम को इससे जोड़ सकते हैं। फिर आपको नए उदाहरण में ssh करने की आवश्यकता होगी, पुरानी मात्रा को माउंट करें, और अपनी फ़ाइलों को प्राप्त करें।
kloddant

वास्तव में, आप चलाने sync: sync;से पहले चलाना चाहते हैं shutdown -rइसलिए I / O सभी फ़ाइल सिंक्रनाइज़ हो जाएंगी। मुझे संदेह है कि इससे समस्या भी साफ हो जाएगीmysql
user3629249

जवाबों:


92

उन आदेशों की तुलना में किसी अन्य चीज़ का उपयोग करके अपने सर्वर को पुनरारंभ करने का कोई बेहतर तरीका नहीं है।

  • शटडाउन आपके सिस्टम को रोकने का सबसे आम तरीका है। तर्क -rऔर एक विशिष्ट समय जोड़ना (या ' now') शटडाउन अनुक्रम के बाद इसे रोकने के बजाय आपके सिस्टम को रिबूट करेगा।
  • रिबूट एक रैपर राउंड शटडाउन है जो कुछ हार्डडिस्क रखरखाव (सिंकिंग और / या स्टैंडबाय मोड में डालने और वास्तव में प्रासंगिक नहीं) करता है।
  • के नए संस्करण reboot(> 2.74) आरंभ करेंगे shutdownयदि रनलेवल 0 या 6 में नहीं।
  • अधिकांश init स्क्रिप्ट , utmp को लॉग बनाने के लिए हाल्ट कहती हैं

आधुनिक वितरण में आपके द्वारा उपयोग किए जा रहे कमांड की परवाह किए बिना सभी कार्य शामिल होंगे। मूल रूप से वे सभी आपके SysV (CentOS <7) या systemd (CentOS> = 7) स्क्रिप्ट के शटडाउन रन-टाइम की शुरुआत करते हैं (मैं आसानी से पढ़ने के लिए उन्हें init स्क्रिप्ट कहूंगा)।

आमतौर पर रनलेवल 'S' के तहत पंजीकृत आपकी सभी सेवाओं को स्टेप द्वारा init स्क्रिप्ट स्टेप का उपयोग करते हुए बंद करना । व्यक्तिगत init स्क्रिप्ट्स में टाइमआउट हो सकता है, जैसे CentOS में MySQL init स्क्रिप्ट। जब स्टॉप तर्क दिया जाता है और डेमन को उचित समय में बंद नहीं किया जाएगा, तो स्क्रिप्ट रुक जाएगी और विफलता से बाहर निकल जाएगी। शटडाउन प्रक्रिया जारी रहेगी जैसे कि कुछ भी गलत नहीं था, केवल थोड़ा अधिक समय ले रहा है और शायद एक चेतावनी प्रिंट करता है। अंत में, जब सभी init स्क्रिप्ट निष्पादित की जाती हैं, तो अपरिहार्य हो जाएगा: अभी भी चल रही सभी प्रक्रियाओं को एक SIGTERM संकेत मिलेगा और, कुछ सेकंड (2 या 5) के बाद, a SIGKILL। इससे पहले कि आपके सिस्टम को वास्तव में रिबूट या शटडाउन करने के लिए ACPI कॉल किया जाता है, इससे बाकी की सफाई हो जाएगी ।

एक अपवाद विकल्प के rebootसाथ कमांड का उपयोग कर रहा है -f, यह इनिट स्क्रिप्ट निष्पादित करना छोड़ देगा और सिस्टम को सीधे रीबूट करेगा।

आप अपनी चिंताओं के मूल कारण को ठीक करने से बेहतर होंगे: MySQL ठीक से बंद नहीं हो रहा है।

अक्सर यह काम के बड़े पैमाने पर लोड के कारण होता है जो डेमॉन को सुरक्षित रूप से बाहर निकलने से पहले किए जाने की आवश्यकता होती है। मेरे पास एक बार +300.000 तालिकाओं के साथ एक MySQL का उदाहरण था जिसे बाहर निकलने में एक घंटे का समय लगा। इसी तरह के मुद्दों को विशाल बफ़र्स और विरल I / O उपलब्धता का उपयोग कर सिस्टम के साथ पाया जा सकता है।


31

Centos 6.x का एक सुंदर शटडाउन कमांड का उपयोग रूट के रूप में किया जाना चाहिए:

shutdown -h now

यह सर्वर को शालीनतापूर्वक बंद करने से पहले सभी चलने वाली सेवाओं को रोकने का प्रयास करेगा।

इस कमांड का उपयोग करना mySQL सॉकेट के मुद्दों को भी रोकता है।

इसी तरह, एक सुंदर रिबूट के लिए:

reboot -h now

आप इसी तरह के प्रश्न के बारे में पिछला उत्तर यहां पढ़ सकते हैं:

https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket


7
मुझे लगता है कि आप का मतलब है shutdown -r now, या शायद बस rebootrebootआदेश एक नहीं है -hविकल्प।
माइकल हैम्पटन

1
हाय माइकल, Centos 6.x में रिबूट करने से पहले सेवाओं को रोकने का विकल्प है। "शटडाउन-एच अब" एक सुंदर शटडाउन है, और "रिबूट-एच अब" एक सुंदर रिबूट है। इसे अपने Centos सर्वर पर आज़माएं ...
GeckoSEO

1
ओह? और यह -hविकल्प क्या करता है? यह मैन पेज में नहीं है।
माइकल हैम्पटन

2
वास्तव में? क्या आपके पास इसके लिए कुछ दस्तावेज हैं? क्योंकि, सबसे पहले, यह वही rebootहै जो बिना करता है -h। दूसरा, यह उस तरह से प्रलेखित नहीं है, जहां तक ​​मैं बता सकता हूं।
माइकल हैम्पटन

2
डॉक्स आपने अभी-अभी राज्यों को लिंक किया है जो मैं आपको बता रहा हूं! rebootकोई -hविकल्प नहीं है, shutdownकरता है।
माइकल हैम्पटन

2

एंड-यूजर्स और ग्राहकों को रिमोट निर्देश देते समय, मैं उन्हें poweroffसिस्टम को शटडाउन और पावर ऑफ करने के लिए उपयोग करने का निर्देश देता हूं ।

यदि वे एक गर्म रिबूट चाहते हैं, तो मेरा सुझाव है कि वे rebootकमांड का उपयोग करें ।

मुझे लगता है कि कोई कह सकता है कि यह जारी करनाCtrl-Alt-Delete भी पूरा करता है;)


मैं इस जवाब से सहमत नहीं हूं। रिबूट और शटडाउन (Ctrl-Alt-Delete) बलशाली है और कुछ वातावरणों में, जैसे कि mySQL चलाने वाले, एक सॉकेट "लॉक" का कारण बन सकते हैं, जिसके लिए एक नया सॉकेट बनाने की आवश्यकता होती है, या एक नया पुनः बनाने से पहले मौजूदा सॉकेट को हटाना / हिलाना पड़ता है। एक।
गेकोसेओ

1
@GeckoSEO यह एक सुविचारित सुझाव था जिसमें लिनक्स सर्वर पर Ctrl-Alt-Delete को सक्षम करने के खतरे की बात की गई थी
21

दूसरी ओर मेरी प्रतिक्रिया स्पष्ट नहीं थी, मैं केवल उन लोगों के लिए उत्तर को स्पष्ट करने का प्रयास कर रहा था जो इस प्रश्न को हल करने का प्रयास कर रहे हैं। कृपया मेरे पहले उत्तर को देखें, मुझे आशा है कि इससे मदद मिलेगी।
गेकोसेओ

2

मैं 'init 6' कमांड का उपयोग करता हूं।

init 6 इनवाइट प्रोसेस को बताता है कि सभी इनवॉइस प्रोसेस / डेमन को बंद कर देता है जैसा कि init फाइल में लिखा होता है (उलटा क्रम में उन्होंने शुरू किया था) और अंत में शटडाउन को शुरू करते हैं -r अब मशीन को रिबूट करने के लिए कमांड देता है।

इस प्रश्न पर अधिक जानकारी प्राप्त की जा सकती है ।


0

मुझे लगता है कि आप इस उत्तर को पसंद नहीं कर सकते हैं, लेकिन इस उत्तर में कुछ अंतर्दृष्टि शामिल हैं जिन्हें कोई भी नहीं मानता है। । । तुम लिखो:

मैंने हमेशा कमांड का उपयोग किया:

शटडाउन -r अब

हालाँकि, कभी-कभी यह MySQL समस्याओं का कारण बनता है।

यहाँ समस्या शटडाउन की आपकी विधि नहीं है, सॉफ्टवेयर का एक टुकड़ा है जो शटडाउन को ठीक से नहीं संभाल सकता है; माई एसक्यूएल।

जिस तरह से आप वास्तव में इसे संबोधित कर सकते हैं वह MySql (PostgreSql एक महान प्रतिस्थापन है) को प्रतिस्थापित करता है या अपनी स्वयं की शटडाउन स्क्रिप्ट लिखता है जो एक बच्चे की तरह MySql को कोडित करता है, और जब यह बंद हो जाता है तो बहुत खुशी होती है कि सिस्टम बंद हो जाता है।

... एक ऐसे व्यक्ति के रूप में, जिसने 26 साल से अधिक समय तक डेटाबेस सिस्टम में विशेषज्ञता हासिल की है, मैं आपको बता सकता हूं कि यह केवल बहुत हाल के दिनों में है कि MySql ने डेटाबेस सिस्टम क्या हैं के सबसे महत्वपूर्ण पहलुओं पर सक्षमता के संबंध में एक साथ अपना काम शुरू कर दिया है के लिए - डेटा सुरक्षा / अखंडता। पूर्व में, उन्होंने इन पहलुओं पर कम ध्यान दिया है और प्रदर्शन पर अधिक ध्यान दिया है। यदि आप डेटा खो देते हैं तो क्या अच्छा प्रदर्शन है? कुछ अनुप्रयोगों पर, जैसे, कहते हैं, नेटफ्लिक्स वीडियो रिकॉर्डिंग को किस बिंदु पर देख रहे हैं, पूर्ण निष्ठा विशेष रूप से महत्वपूर्ण नहीं हो सकती है - शायद, यहां तक ​​कि, आपके ग्राहक विफलता के बाद वीडियो का थोड़ा सा समर्थन करते हैं। लेकिन एक बैंकिंग प्रणाली में, यह महाकाव्य अनुपात का एक आपदा है। केवल डेटा स्वामी ही जान सकते हैं कि उनके लिए क्या सही है।


1
Mysql को केवल इसलिए बदलें क्योंकि समस्याएँ सिस्टम को पुनरारंभ या बंद करती हैं? और समाधान का अंतिम भाग उस व्यक्ति की समस्या को हल करने के लिए कुछ भी योगदान नहीं देता है जो सवाल करता है
फूट्रुजिलो

यह उत्तर स्रोतों या संदर्भों के बिना mysql के खिलाफ पक्षपाती है। यह प्रश्न के संदर्भ में उपयोगी नहीं है; कोई भी सॉफ्टवेयर जो बाहर निकलने में बहुत समय लेता है, वह रिबूट (विशेषकर सिस्टमड और इसके आक्रामक समय के साथ) में समस्या पैदा कर सकता है।
हरदौल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.