मूल कारण के करीब पाने के लिए चारों ओर देख रहे हैं
समस्या शटडाउन पर चल रही स्क्रिप्ट लगती है।
मैंने इसके साथ संबंधित फ़ाइल की पहचान की:
find /etc/systemd -name *unattended*
जो मुझे संबंधित प्रणाली की स्क्रिप्ट देता है:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
फिर मुझे शटडाउन पर निष्पादित स्क्रिप्ट के बारे में बताया:
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
मूल कारण का पता लगाने के लिए गहराई से जांच की जा रही है
इस स्क्रिप्ट के भीतर /etc/apt/apt.conf.d/50unattended-upgrades -> अनअटेंडेड-अपग्रेड :: इंस्टॉलऑनशॉट
लाइन 120 / usr / शेयर / अनअटेंडेड-अपग्रेड / अनअटेंडेड-अपग्रेड-शटडाउन:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
समस्या: यह "गलत" कीवर्ड की उम्मीद करता है, जबकि उपयुक्त मान में हमें "गलत" (सटीक स्ट्रिंग तुलना) जोड़ना चाहिए!
समाधान
मैं 3 अलग-अलग तरीकों से स्टालिंग शटडाउन को ठीक करने / हल करने में सक्षम था:
समाधान ए
- /etc/apt/apt.conf.d/50unattended-upgrades में "गलत" के बजाय "गलत" लिखें
यह सेटिंग तब तक सुरक्षित रहती है जब तक कि एक वास्तविक फ़िक्सेस प्रदान नहीं किया जाता है क्योंकि हम यहाँ जो फ़ाइल बदलते हैं वह अनअटेंडेड-अपग्रेड के अपडेट द्वारा अधिलेखित नहीं होती है। समस्या: जब मूल कारण ठीक हो जाता है तो इसके परिणामस्वरूप एक बार फिर से शटडाउन बंद हो जाएगा, इसलिए मैं इसे वर्कअराउंड बी के साथ संयोजित करने का सुझाव देता हूं।
या: कसरत बी
- /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service में प्रतीक्षा समय को 15 सेकंड से घटाएं:
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[सेवा]
Type = Oneshot
ExecStart = / usr / share / पहुंच से बाहर-उन्नयन / पहुंच से बाहर-उन्नयन-बंद
TimeoutStartSec = 15
यह सेटिंग सुरक्षित नहीं है, क्योंकि हमारे द्वारा यहां बदली गई फ़ाइल अप्राप्य-अपग्रेड के अद्यतन द्वारा अधिलेखित हो सकती है। इसके अलावा यह वास्तव में कुछ तय करने से बहुत दूर है, लेकिन यह सुनिश्चित करेगा कि शट डाउन करते समय आपका सिस्टम कई मिनट इंतजार नहीं करेगा। ध्यान रखें कि अनअटेंडेड-अपग्रेड के अपग्रेड के बाद आपको इसे फिर से सेट करना पड़ सकता है!
या: फिक्स सी (ऊपर की ओर सूचित किया जाना है)
- फिक्स / यूएसआर / शेयर / अनअटेंडेड-अपग्रेड / अनअटेंडेड-अपग्रेड-शटडाउन "झूठी" के बजाय "झूठे" की अपेक्षा करें
पैचिंग / usr / शेयर / अनअटेंडेड-अपग्रेड / अनअटेंडेड-अपग्रेड-शटडाउन:
--- / tmp / unattended-upgrade-shutdown 2017-02-03 14: 53: 03.238103238 +0100
+++ / tmp / unattended-upgrade-shutdown_fix 2017-02-03 14: 53: 17.685589001 +0100
@@ -117,7 +117,7 @@
# चलाओ
पी = कोई नहीं
apt_pkg.init_config ()
- अगर apt_pkg.config.find_b ("अप्राप्य-अपग्रेड :: इंस्टॉलऑनशूटडाउन", गलत):
+ यदि apt_pkg.config.find_b ("अप्राप्य-अपग्रेड :: इंस्टॉलऑनशूटडाउन", गलत):
env = copy.copy (os.environ)
env ["UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug ("शटडाउन मोड में अनअटेंडेड-अपग्रेड शुरू करना")
निष्कर्ष
tbh केवल अंतिम एक वास्तविक फिक्स है। दोनों अन्य विकल्प सिर्फ वर्कअराउंड हैं जब तक कि वास्तविक फिक्स लागू नहीं किया जाएगा।
यह ऊपर की ओर किया जाना है और क्योंकि यह दोनों वितरणों के लिए डेबियन (डेबियन स्ट्रेच पर परीक्षण) और उबंटू (उबंटू 16.04.1 पर परीक्षण) को प्रभावित करता है।
मैंने यहाँ एक बग रिपोर्ट खोली है: https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611