उपयुक्त / नायाब-अपग्रेड स्टॉल शटडाउन


14

जब unattended-upgradesस्थापित किया जाता है, तो 10 में से 9 शटडाउन / रिबूट "हैं, जबकि अनअटेंडेड अपग्रेड शटडाउन शुरू करते हैं"। यह लटका 5-10 मिनट के लिए शटडाउन प्रक्रिया को रोकता है।

अगर मैं अप्राकृत-अपग्रेड के माध्यम से अक्षम करता हूं /etc/apt/apt.conf.d/20auto-upgrades and/or 50unattended-upgrades, तो समस्याएं होती हैं।

यदि मैं शटडाउन / रिबूट ( sudo service unattended-upgrades stop) समस्या से पहले ही सेवा समाप्त कर देता हूं तो भी समस्या होती है।

यदि मैं पैकेज निकालता हूं ( sudo apt remove unattended-upgrades) तो समस्या नहीं होती है।

यह एक नए सिरे से स्थापित संस्करण पर होता है Ubuntu Server 16.04.1(दोनों unattended-upgradesजीयूआई के माध्यम से स्थापित होता है या अप्राप्य-अपग्रेड के मैनुअल इंस्टाल)

दोनों Kern.log & syslogशटडाउन प्रक्रिया नहीं दिखाते हैं (मेरा मानना ​​है कि क्योंकि फाइल सिस्टम पहले से ही अनमाउंट है)

क्या किसी और ने इस मुद्दे को देखा या तय किया है? पागल हो रहा है उसका निवारण करने की कोशिश कर रहा है।


16.04.1 परीक्षण वीएम में पुन: पेश करने में असमर्थ। यहां शटडाउन में देरी नहीं हुई है।
user535733

क्या यह हार्डवेयर आधारित हो सकता है? मुझे पूरी तरह से यकीन नहीं है unattended-upgradesकि शटडाउन के दौरान क्या होता है ।
गरल्लोन २४५१३६

मैं सोच रहा हूं कि यूयू हमेशा शटडाउन के समय क्यों चल रहा है: यू यू एक डेमॉन नहीं है; यह केवल एक स्क्रिप्ट है जो प्रत्येक दिन एक बार संक्षिप्त रूप से चलती है और फिर समाप्त हो जाती है।
user535733

ऐसा लगता है कि जैसे शटडाउन प्रक्रिया यूयू को उस चरण के दौरान चलाने की कोशिश करती है, जहां सभी फाइल सिस्टम को विघटित किया जा रहा है। यह /etc/rc6.d/ या /etc/rc0.d/ लिंक द्वारा नियंत्रित नहीं किया जाता है मैंने सभी लिंक हटा दिए हैं और प्रक्रिया अभी भी शटडाउन के दौरान चलती है।
garullon245136

2
/Etc/apt/apt/conf.d/50unattended-upgrades में 'रन यूयू एट शटडाउन' विकल्प (लाइन 25 के आसपास) के लिए देखें। सुनिश्चित करें कि यह 'गलत' है या टिप्पणी की गई है।
user535733

जवाबों:


14

मूल कारण के करीब पाने के लिए चारों ओर देख रहे हैं

समस्या शटडाउन पर चल रही स्क्रिप्ट लगती है।

मैंने इसके साथ संबंधित फ़ाइल की पहचान की:

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


2
apt_pkg.config.find_b () एक बूलियन देता है न कि एक स्ट्रिंग। "find_b (कुंजी [, डिफ़ॉल्ट = गलत]] → बूल कुंजी पर संग्रहीत बूलियन मान लौटाएं, या अनुरोध किए गए विकल्प के सेट न होने पर बूल ऑब्जेक्ट डिफ़ॉल्ट द्वारा दिए गए मान।" apt.alioth.debian.org/python-apt-doc/library/… तो यह गलत नहीं है, अपठित -अपग्रेड-शटडाउन में बग के रूप में जाँच सही है।
ब्रायन मरे 21

जैसा कि ऊपर लॉन्चपैड बग रिपोर्ट लिंक का अनुसरण करने वाला कोई भी व्यक्ति देखेगा, यह मुद्दा वास्तव में एक असफल स्ट्रिंग तुलना की वजह से नहीं था, बल्कि इसकी वजह से एक सिस्टम सिक्वेंसिंग बग था जो कथित तौर पर अब तय हो गया है
sampablokuper

1

वर्कअराउंड के रूप में मैं इसे ठीक करने के लिए इस स्क्रिप्ट का उपयोग करता हूं:

#!/usr/bin/env bash

sed -i '/if apt_pkg.config.find_b/s/False/false/' /usr/share/unattended-upgrades/unattended-upgrade-shutdown

exit

उम्मीद है कि यह जल्द ही अपस्ट्रीम हो जाएगा।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.