सवाल कमांड लाइन से, मैं मशीन को रीबूट की आवश्यकता के बारे में बता सकता हूं?


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

मैं कमांड लाइन से, कैसे उबंटू से जांच सकता हूं सर्वर एक रिबूट की आवश्यकता है?

मैं 'सिस्टम पुनरारंभ आवश्यक' के लिए grep कर सकता था /etc/motd, लेकिन मुझे एक समाधान चाहिए जो अधिक सुरुचिपूर्ण है। साथ ही, मुझे एक समाधान चाहिए जो पुरानी रिलीज में काम करता है, उदा। हार्डी (8.04 एलटीएस)।


219
2017-07-28 21:49


मूल


यदि आप सर्वर को बनाए रखते हैं तो आप जल्द ही समझदार गीले विकसित करेंगे या अपडेट को पुनरारंभ करने की आवश्यकता नहीं होगी। अधिकांश अपडेटों को पुनरारंभ करने की आवश्यकता नहीं होती है या केवल सेवा को पुनरारंभ करने की आवश्यकता होती है (चुड़ैल इसे स्वचालित रूप से करना चाहिए)। - eXlin


जवाब:


आप बस फाइल को जांच सकते हैं या नहीं /var/run/reboot-required मौजूद है या नहीं।

उदाहरण के लिए, इनमें से कोई भी आपको "ऐसी कोई फ़ाइल नहीं" या "फ़ाइल नहीं मिली" बताएगी यदि आपको रीबूट करने की आवश्यकता नहीं है, अन्यथा (यदि आपको रीबूट करने की आवश्यकता है) तो फ़ाइल मौजूद होगी और ये आदेश फ़ाइल के बारे में जानकारी दिखाएंगे:

file /var/run/reboot-required
stat /var/run/reboot-required
ls /var/run/reboot-required

एक बैश स्क्रिप्ट में, आप इसका उपयोग कर सकते हैं:

#!/bin/bash
if [ -f /var/run/reboot-required ]; then
  echo 'reboot required'
fi

257
2017-07-28 22:02



यह काम करता है, और यह हार्डी पर भी काम करता है। (डैपर पर काम नहीं करता - 6.06 - जो कि मेरे पास अभी भी एक मशीन पर है। मुश्किल।) संयोग से, / var / run / reboot-required फ़ाइल / usr / share / update-notifier / notify-reboot द्वारा बनाई गई है - जिसे विभिन्न पैकेजों की रखरखाव स्क्रिप्ट से बुलाया जाता है। - Marius Gedminas
यह डैपर पर भी काम करेगा यदि मैंने अद्यतन-नोटिफ़ायर पैकेज स्थापित किया है, सिवाय इसके कि यह मेरे प्राचीन सर्वर में 120 मेग्स के गनोम सामान को खींचना चाहता है। - Marius Gedminas
बेहतर इंस्टॉल-नोटिफ़ायर-आम स्थापित करें, यह किसी भी जीयूआई सामग्री पर निर्भर नहीं है (लेकिन डैपर के लिए मौजूद नहीं है)। - Marius Gedminas
FWIW, अपडेट-नोटिफ़ायर-सामान्य डिफ़ॉल्ट रूप से ल्यूसिड सर्वर पर स्थापित नहीं है। - Marius Gedminas
धन्यवाद! और फ़ाइल /var/run/reboot-required.pkgs उन संकुलों को सूचीबद्ध करेगा जिन्हें रीबूट की आवश्यकता होती है। - nealmcb


पैकेज में डेबियन-गुड्स चेकस्टार्ट नामक एक कमांड है जो काफी उपयोगी है। इसका आउटपुट आपको पूर्ण रीबूट से बचने में मदद कर सकता है।


39
2017-09-09 14:51



यह मुझे एक पूर्ण रीबूट से कैसे बचा सकता है? - Oxwivi
यह आपको बताता है, जो चल रहे अनुप्रयोगों ने साझा पुस्तकालयों को लोड किया है जिन्हें एप्लिकेशन चल रहा था, जबकि अपग्रेड किया गया था। फिर आप एप्लिकेशन और सेवाओं को मैन्युअल रूप से पुनरारंभ करें और पूर्ण रीबूट से बचें। हालांकि, कर्नेल उन्नयन में मदद नहीं करता है। - aquaherd
यह शीर्ष जवाब होना चाहिए। बहुत उपयोगी। ओपनएसयूएसई को एक उपकरण अंतर्निहित मिला (और यह भी मदद करता है कि आप इसे कैसे चला सकते हैं)। शर्म उबंटू बस "पुनरारंभ करें, पुनरारंभ करें" चला जाता है। उदाहरण के लिए कोलोर्ड को फिर से शुरू करने की आवश्यकता है। इसलिए, पुनरारंभ करने की कोई आवश्यकता नहीं है। - Shiki
@aquaherd बहुत उपयोगी टिप्पणी - आपके जवाब में आगे बढ़ने लायक हो सकता है? - Duncan Jones


आम तौर पर अगर फ़ाइल

/var/run/reboot-required 

मौजूद है आपको रीबूट करना चाहिए। आप देख सकते हैं कि यह फ़ाइल gnome-terminal में इस सरल कमांड का उपयोग करके है या नहीं।

ls /var/run/reboot-required

32
2017-07-28 21:59



यह फ़ाइल अब अद्यतन-नोटिफ़ायर-सामान्य से बनाई गई प्रतीत नहीं होती है जो इसे बनाने के लिए उपयोग की जाती है। - Scott


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

इस स्क्रीनशॉट में आप देख सकते हैं 199! लाल पृष्ठभूमि के साथ नीचे पंक्ति पर कि 199 अपडेट उपलब्ध हैं, और ! इसका मतलब है कि कुछ सुरक्षा अद्यतन हैं। अग्रभूमि में मेनू यह चुन रहा है कि कौन सी स्थिति अधिसूचनाओं को प्रदर्शित किया जाना चाहिए।

यदि रीबूट की आवश्यकता है तो यह प्रतीक द्वारा इंगित किया जाएगा (R) नीली पृष्ठभूमि पर सफेद पाठ के साथ निचले पट्टी में प्रदर्शित किया गया। अधिक जानकारी और अन्य संकेतक के बारे में पढ़ा जा सकता है byobu मैन पेज

byobu screenshot


17
2017-07-29 17:59





/etc/motd फाइल को इसकी जानकारी मिलती है कि रीबूट की आवश्यकता है या नहीं /var/run/reboot-required फ़ाइल।

आप टर्मिनल में इस फाइल की सामग्री का उपयोग कर जांच सकते हैं cat /etc/motd आदेश


9
2017-07-28 21:53



अद्यतन-नोटिफायर-आम इसे बनाने के लिए प्रयोग किया जाता है लेकिन अब और नहीं करता है - Scott


मैंने अपनी .bash-aliases फ़ाइल में निम्न जोड़ा:

alias rr='if [ -f /var/run/reboot-required ]; then echo "reboot required"; else echo "No reboot needed"; fi'

इस अपेक्षाकृत सरल कार्य के लिए पैकेज स्थापित करने से सरल माना जाता है। तब मैं बस दौड़ता हूं:

you@somewhere:~$ rr
No reboot needed
you@somewhere:~$ 

6
2017-12-16 13:22





यदि आपके पास रीबूट-नोटिफ़ायर या अपडेट-नोटिफ़ायर-सामान्य पैकेज स्थापित हैं, तो आपको फ़ाइलें / var / run / reboot-required और /var/run/reboot-required.pkgs मिलती हैं

रिबूट-सूचक उबंटू विली और ज़ेनियल में नया है। डेबियन खिंचाव, लेकिन जेसी-बैकपोर्ट्स में

अद्यतन-सूचक-आम पुराना है, ज़ेनियल और डेबियन व्हीजी समेत सभी उबंटू संस्करणों में। डेबियन स्ट्रेच या जेसी में नहीं।

(रीबूट-नोटिफ़ायर पैकेज पर कुछ पृष्ठभूमि है https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/  )

यदि आपके पास इन पैकेजों को स्थापित नहीं किया गया है तो आप संस्करण के साथ स्थापित लिनक्स पैकेज के संस्करण की तुलना कर सकते हैं:

tim@tramp:~$ dpkg -l linux-image-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version               Architecture          Description
+++-=================================-=====================-=====================-=======================================================================
ii  linux-image-3.16.0-4-amd64        3.16.7-ckt20-1+deb8u4 amd64                 Linux 3.16 for 64-bit PCs
ii  linux-image-amd64                 3.16+63               amd64                 Linux for 64-bit PCs (meta-package)
tim@tramp:~$ more /proc/version
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian <b>3.16.7-ckt20-1+deb8u3</b> (2016-01-17)

आप यहां देख सकते हैं कि नवीनतम स्थापित कर्नेल 3.16.7-ckt20-1 + deb8u4 है लेकिन कर्नेल चल रहा है 3.16.7-ckt20-1 + deb8u3। तो इस प्रणाली को रीबूट की जरूरत है। यू 4 बनाम यू 3 अंत में सही है।

आपको उपरोक्त बॉक्स को स्क्रॉल करने की आवश्यकता हो सकती है। / Proc / संस्करण में, यह लाइन के अंत के पास संस्करण है जो मायने रखता है।

बहुत मामूली संस्करण कोड परिवर्तन एक डेबियन सुरक्षा कर्नेल अद्यतन के विशिष्ट है।

needrestart

एक और विकल्प स्थापित करने के लिए है needrestart पैकेज।

sudo apt-get install needrestart
sudo needrestart -k

कर्नेल को अपग्रेड किए जाने के बाद भी आवश्यकता को स्थापित करने के बावजूद काम करने लगता है।


5
2018-03-06 21:48



आपका पहला अनुच्छेद उबंटू संस्करणों से कैसे संबंधित है? - muru
अच्छी बात। धन्यवाद। मैंने इतना लंबा परीक्षण किया और पैकेजों को आजमाया जो मुझे याद आया। मैंने स्पष्ट करने के लिए संपादित किया है और उबंटू पैकेज जानकारी शामिल है। - Tim Bray
8.04 पर वापस, एक अद्यतन के बाद जो पुनरारंभ करने की आवश्यकता है, कोग लाल हो जाएगा। मैं उस व्यवहार को वापस कैसे प्राप्त करूं? - PenguinCSC
उबंटू 14.04, मुझे मिलता है dpkg-query: no packages found matching linux-image-* - the_nuts
Unknown option: k उबंटू में 14.04। - Cees Timmerman


सवाल का जवाब नहीं, लेकिन कई प्रतिक्रियाओं के बारे में एक चेतावनी: /var/run/reboot-required है नहीं रीबूट वास्तव में आवश्यक है या नहीं, इसका एक विश्वसनीय स्रोत है।

सरल परीक्षण: जब कोई नया कर्नेल उपलब्ध हो जाता है, इसे इंस्टॉल करें, रीबूट करें। रिबूट के बाद, भागो apt autoremove कुछ पुराने से छुटकारा पाने के लिए, अब आवश्यक नहीं है, कर्नेल। इसे चलाने के बाद, यह बताएगा कि रीबूट की आवश्यकता है, जो पूर्ण बकवास है।


-1
2017-09-14 07:09



खैर, एक कर्नेल को हटाने से आपकी ग्रब कॉन्फ़िगरेशन फ़ाइल फिर से उत्पन्न होती है, जिसके बाद यह संभवतः बूट करने का एक अच्छा विचार है, यह सत्यापित करने के लिए कि आप अभी भी बूट कर सकते हैं। कम से कम इस तरह मैं अपने लिए यह (गलत) विशेषता को न्यायसंगत बना रहा हूं। - Marius Gedminas