कैसे उबंटू ने "सिस्टम रिस्टार्ट आवश्यक" ध्वज को ट्रैक ऑफ़ ट्रैक में रखा है?


77

मेरे पास कुछ उबंटू सर्वर (8.10, 9.10) हैं जो स्वचालित रूप से सुरक्षा अद्यतन स्थापित करने के लिए सेट है। कुछ बार इन अद्यतनों में सिस्टम को पुनरारंभ करने की आवश्यकता होती है, और यह स्ट्रिंग motdनिम्न में दिखाई जाती है :

*** System restart required ***

इन के बारे में एक नोटिस प्राप्त करने के लिए, मैं यह देखने के लिए कि क्या सर्वर को रिबूट की आवश्यकता है, निगरानी के लिए नागियोस परीक्षण लिखने की योजना है। तो, मेरा सवाल:

क्या /etc/motdरिबूट की आवश्यकता है, यह पता लगाने के लिए पार्सिंग से बेहतर तरीका क्या है?

जवाबों:


94

की उपस्थिति के लिए जाँच करें /var/run/reboot-required


17
नोट: डेबियन सिस्टम के लिए, /var/run/reboot-requiredजब तक update-notifier-commonपैकेज स्थापित नहीं किया जाता है , तब तक निर्मित नहीं होता है।
पीटर वी। मॉर्क

7
ध्यान दें कि update-notifier-commonडेबियन जेसी में हटा दिया गया है। unattended-upgradesअब एक सरल स्क्रिप्ट शामिल है, /etc/kernel/postinst.d/unattended-upgradesजो touchफ़ाइल से बचती है। reboot-notifierएक और छोटा पैकेज है जो प्रारूप के साथ संगत है update-notifier-common
ypid

आप यह देखने के लिए कि क्या कोई रिबूट पहले ही शुरू किया जा चुका है, अपनी चल रही प्रक्रियाओं की जाँच करना चाहते हैं। उदाहरण के लिए, अनअटेंडेड-अपग्रेड में रिबूटिंग के लिए समय निर्दिष्ट करने का विकल्प होता है; इस समय तक, ऊपर की विधि यह इंगित करना जारी रखेगी कि रिबूट की आवश्यकता है, भले ही पहले से ही पहल की जा चुकी हो।
डायलनयुंग

37

पटकथा के रीबूट आवश्यक भाग को उत्पन्न करने वाली स्क्रिप्ट / usr / lib / update-notifier / update-motd-reboot-आवश्यक है जिसमें शामिल हैं:

#!/bin/sh -e
#
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required
fi

आपका नगियोस चेक / var / रन / रिबूट-आवश्यक के अस्तित्व की जांच कर सकता है।


2
+1 यह दिखाने के लिए कि यह किस फ़ाइल में स्थित है
वेन

वह शेल स्क्रिप्ट कुछ भी उत्पन्न नहीं कर रहा है। यदि यह मौजूद है तो यह सामग्री प्रदर्शित करता है
स्कॉट

26

इसके अतिरिक्त फ़ाइल '/var/run/reboot-required.pkgs' उन संकुल को सूचीबद्ध करती है जो रिबूट का अनुरोध करते हैं। उदाहरण के लिए:

$ cat /var/run/reboot-required.pkgs 
linux-image-2.6.32-28-generic
dbus
$

उबंटू ल्यूसिड (10.4) पर।


गुस्सा धन्यवाद ओह मेरे भगवान मैं बहुत याद किया!
लैपशिन दिमित्री

8

डेबियन और उबंटू पैकेज हेल्पर स्क्रिप्ट को निष्पादित करके /var/run/reboot-required*अपनी postinstफ़ाइल के निर्माण को ट्रिगर कर सकते हैं/usr/share/update-notifier/notify-reboot-required

इस प्रकार रिबूट को संसाधित करने का "आधिकारिक" तरीका पैकेज अनुचर द्वारा नियंत्रित किया जाता है। मैं इसे पहले स्क्रिप्ट में / बूट में mtimes के खिलाफ बूट किए गए समय की तुलना करके कर रहा हूं।


4
#!/bin/bash
if [ ! -f /var/run/reboot-required ]; then
        # no reboot required (0=OK)
        echo "OK: no reboot required"
        exit 0
else
        # reboot required (1=WARN)
        echo "WARNING: `cat /var/run/reboot-required`"
        exit 1
fi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.