ओली के पहले के जवाब के आधार पर, मैं आपके सिस्टम पर वर्तमान में स्थापित सभी पैकेजों को खोजने के लिए एक विधि के साथ आया था जिसमें रिबूट की आवश्यकता होती है।
~$ mkdir debs
~$ cd debs
~/debs$ apt-get download $(dpkg -l | tail -n +7 | awk '{print $2}')
डाउनलोड के पूरा होने की प्रतीक्षा करें, मेरे सिस्टम पर यह लगभग 900 एमबी था इसलिए आपके कनेक्शन के आधार पर इसमें कुछ समय लग सकता है। फिर:
~/debs$ for x in $(ls); do y=$(dpkg-deb -I "$x" postinst 2>/dev/null | grep 'reboot-required'); if [ -n "$y" ]; then echo "$x" | grep -Poe '^.*?(?=_)'; fi; done
आउटपुट कुछ इस तरह दिख सकता है:
dbus
gconf2
initscripts
libc6
libpam0g
libpam-systemd
libssl1.0.0
linux-image-3.19.0-47-generic
linux-image-3.19.0-49-generic
network-manager
upstart
बेशक, यह विधि मूर्ख नहीं है। ऐसे पैकेज हो सकते हैं जो 'नोटिफ़िकेशन-रिबूट-आवश्यक' के अलावा अन्य माध्यमों से आवश्यक रिबूट के बारे में सूचित करते हैं, और जबकि यह दिखाता है कि वर्तमान में स्थापित पैकेजों को रिबूट की आवश्यकता है या इसकी आवश्यकता नहीं है, यह निश्चित नहीं है कि बाद के लिए सही होगा। एक ही पैकेज के संस्करण।
/var/run/reboot-required
एक दिन पहले बनाई गई थी लेकिन कोई/var/run/reboot-required.pkgs
फ़ाइल @ Ubuntu 16.04.5 LTS नहीं है।