लापता सिस्टमड यूनिट्स को कैसे निकालें?


40

मुझे यह पता लगाने में समस्या हो रही है कि सिस्टमड यूनिट्स को कैसे हटाया जाए जिनके पास अब फाइलें नहीं हैं। वे अभी भी किसी न किसी तरह से व्यवस्था में उलझे हुए लगते हैं।

पुरानी टूटी हुई इकाइयाँ जिन्हें मैं हटाने की कोशिश कर रहा हूँ:

core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
  UNIT                       LOAD      ACTIVE SUB    DESCRIPTION
<E2><97><8F> firehose-router@02.service not-found failed failed firehose-router@02.service
<E2><97><8F> firehose-router@03.service not-found failed failed firehose-router@03.service

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

फ़ाइलें मौजूद नहीं हैं, फिर भी एक रीलोड में अभी भी ये इकाइयाँ हैं:

core@ip-172-16-32-83 ~ $ systemctl list-unit-files firehose-router@02.service
core@ip-172-16-32-83 ~ $ sudo systemctl daemon-reload
core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
  UNIT                       LOAD      ACTIVE SUB    DESCRIPTION
<E2><97><8F> firehose-router@02.service not-found failed failed firehose-router@02.service
<E2><97><8F> firehose-router@03.service not-found failed failed firehose-router@03.service

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

उनसे संबंधित कोई फाइल नहीं है जो मुझे मिल सके:

core@ip-172-16-32-83 ~ $ sudo find /var/run/systemd -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /etc/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /usr/lib/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $

तो मैं इनसे कैसे छुटकारा पाऊं?


आप इसका उल्लेख नहीं करते हैं, लेकिन मुझे लगता है कि यह विफल रहता है यदि आप systemctl disableउन्हें करने की कोशिश करते हैं, है ना?
दाऊद

2
यह सिर्फ 0. के साथ मौजूद है। अक्षम करने के लिए कुछ भी नहीं है (यह पहले से ही लापता / अक्षम है)।
एंडी शिन

मैंने यहां (और अब तक) नीचे दिए गए सभी समाधानों की कोशिश की और रिबूट किया और कुछ भी काम नहीं किया। जिन इकाइयों को मैं हटाने की कोशिश कर रहा हूं उन्हें एक बार स्थापित किया गया था या स्थापित करने का प्रयास किया गया था, और फिर बाद में शुद्ध किया गया। तो जाहिरा तौर पर उपयुक्त पर्स सिस्टमड्रेड को दिए गए कॉन्फ़िगरेशन को नहीं हटाता है। यह अभी भी मेरे लिए स्पष्ट नहीं है अगर ये "नहीं-पाया" इकाइयां किसी भी समस्या का कारण बनती हैं।
अण्डाकार दृश्य 5

मुझे संदेह है कि मैं / var / lib / systemd / deb-systemd-helper-enable / में फ़ाइलों को हटाने में सक्षम हो सकता हूं, लेकिन मुझे यकीन नहीं है कि मैं इसके साथ गड़बड़ करना चाहता हूं। मुझे लगता है कि वहाँ दो ज्ञात मृत समाप्त होते हैं: mariadb.service.dsh-also और mysql.service.dsh-also
अण्डाकार दृश्य

@Elipticalview इन फ़ाइलों का बैकअप बनाएं, बस मामले में, और बाद में इन्हें हटा दें?
gf_

जवाबों:


76

आपके बाद जो कमांड है systemctl reset-failed


3
धन्यवाद! मुझे नहीं पता कि मेरे लिए यह अधिक स्पष्ट क्यों नहीं था ...
एंडी शिन

6
यह आखिरकार "वास्तविक" सेवा को साफ करने के लिए काम किया, लेकिन मेरे पास एक अन्य सेवा है जो दूर जाने से इनकार करती है। मैंने कोशिश की disable, daemon-reloadऔर reset-failedउर्फ सेवा not-found inactive deadहमेशा की तरह आती है । मैंने कुछ भी नहीं के लिए डिस्क की खोज की जो बिना किसी परिणाम के सेवा नाम से मेल खाती है।
मार्क लता

3
मैं बस इसमें भाग गया और systemctl stop <service>मेरे लिए काम किया।
21 अक्टूबर को mpontillo

टाइमर के लिए भी यही बात लागू होती है - reset-failedउन्हें साफ करने से पहले सबसे पहले बंद करने की जरूरत होती है ।
rustyx

तरह मेरे लिए काम किया है, लेकिन मैं तो उनमें से एक के लिए पहले नकाब उतारना था। इसके अलावा, एक तो मास्क को रोकना पड़ा और अनमास्क जिसके बाद रीसेट-फेल आखिरकार सभी से छुटकारा पा लिया।
टोंग्र

2

जब सिस्टमड यूनिट परिभाषा फ़ाइलों का विश्लेषण करता है, तो यह फ़ाइल में किसी अन्य संबंधित इकाई को नोट करता है - चाहे वे अन्य इकाइयाँ मौजूद हों या नहीं।

$ systemctl --state=not-found --all
> ( ...prints list of 'not-found' units )

$ grep -r "<missing-unit>" /usr/lib/systemd/system
> ( returns files with references to <missing-unit> )

जब एक इकाई "नहीं-पाया" के रूप में दिखाई देती है, तो यह जरूरी नहीं कि एक त्रुटि है - हम सभी जानते हैं कि एक स्थानीय इकाई परिभाषा इसके साथ कुछ संबंध होने का दावा करती है। यह रिश्ता वह नहीं हो सकता है जिसकी हम परवाह करते हैं। उदाहरण के लिए, यह "Before:"कुछ अन्य इकाई हो सकती है , लेकिन हम उस दूसरी इकाई का उपयोग नहीं करते हैं।


0

ऐसा लगता है कि systemd लिंक को बनाए रखता है, लेकिन यह नहीं जानता कि जब आप यूनिट फ़ाइल को हटाते हैं तो उनके साथ क्या करना है।

आप उन्हें मैन्युअल रूप से /etc/systemd/system/suspend.target.wants/और इस तरह से हटाने की कोशिश कर सकते हैं, लेकिन निश्चित रूप systemctl reset-failedसे पिछले उत्तर से बेहतर विकल्प की तरह लगता है।

$ cd /etc/systemd/system
$ sudo mv lock.service /tmp 
$ sudo systemctl disable lock.service
Failed to disable unit: No such file or directory
$ sudo mv /tmp/lock.service .
$ sudo systemctl disable lock.service
Removed /etc/systemd/system/suspend.target.wants/lock.service.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.