क्यों टर्मिनल खुद को अनइंस्टॉल कर सकता है?


25

स्क्रीनशॉट

कैसे apt-get remove xtermगुजरता है? और इसकी स्थापना रद्द होने के बाद, xtermयह बंद नहीं होता है और सामान्य रूप से कार्य करता रहता है।

क्या xtermरैम में कैश की गई प्रक्रिया चल रही है?


6
सटीक होने के लिए, यह वास्तव में खुद को अनइंस्टॉल नहीं कर रहा है - apt-getअनइंस्टॉल कर रहा है xterm, और इसका कोई विचार नहीं है कि यह किसी तरह किसी xtermप्रक्रिया पर निर्भर करता है - इसलिए यह "रनिंग के दौरान xterm को अनइंस्टॉल क्यों किया जा सकता है?" के बारे में है। अच्छा प्रश्न।
वोल्कर सिएगल

2
यह समान है कि आप ओएस चलाते समय हार्ड डिस्क को कैसे हटा सकते हैं।
jkd

जवाबों:


53

काफी नहीं। फ़ाइल प्रोग्राम द्वारा पहले से ही खुली है। फ़ाइल को हटाना (और फिर इसे दूसरे संस्करण के साथ बदलना) रनिंग प्रोग्राम को प्रभावित नहीं करता है क्योंकि मूल फ़ाइल को तब तक खुला रखा जाता है (हालांकि डिस्क पर नाम के बिना इसे फिर से खोलने के लिए) जब तक कि प्रोग्राम इसके साथ नहीं किया जाता है। केवल जब फ़ाइल के सभी हैंडल बंद हो जाते हैं, तो डिस्क पर उसके डेटा ब्लॉक जारी किए जाते हैं। तब तक खुली फाइल को सामान्य की तरह पढ़ा और लिखा जा सकता है - एकमात्र बदलाव यह है कि कोई और इसे नहीं खोल सकता है क्योंकि इसका नाम हटा दिया गया है।

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


4
यह वास्तविक कारण है .... यही कारण है कि rm -rf /काम करता है .....
heemayl

6
यदि आप "काम" शब्द का उपयोग करना चाहते हैं, तो पूरी तरह से सब कुछ सफलतापूर्वक पेंच करने का वर्णन करने के लिए। ;) दिलचस्प है, rm -rf /अगर आप इसे तुरंत बाद दूसरी बार चलाने की कोशिश करते हैं तो काम नहीं करेगा;)
थोमसट्रेटर

1
मैंने अक्सर "/ कुछ / फ़ाइल / नाम (हटाए गए)" lsofआउटपुट में देखा है, और मुझे पता है कि एक 'ज़ोंबी' फ़ाइल जैसा दिखता है ... लेकिन क्या ऐसी फ़ाइल की सामग्री को गायब होने से बचाने का कोई तरीका है जब अंतिम फ़ाइल हैंडल मर जाता है?
किलन फथ

1
@KilianFoth, यदि आप एक ऐसी प्रक्रिया पा सकते हैं जिसमें अभी भी फ़ाइल खुली है, तो आप इसे / proc / $ PID / fd / $ ID से दूसरी फ़ाइल में कॉपी कर सकते हैं, लेकिन मुझे फ़ाइल को पुनर्प्राप्त करने का तरीका नहीं मिल रहा है फ़ाइल को लिंक करने में सभी प्रयासों के विफल होने के स्थान पर।
Psusi

3
@KilianFoth यदि कोई फ़ाइल हैंडल है, तो सिस्टम कॉल rootका उपयोग करके इसके लिए एक नाम बनाने में सक्षम हो सकता है (और इस प्रकार विलोपन को रोक सकता है) linkat। लेकिन निष्पादन योग्य और लाइब्रेरीज़ मेमोरी मैप्ड होती हैं, जिसके लिए फ़ाइल हैंडल की आवश्यकता नहीं होती है। मैं किसी भी फाइल को हैंडल करने का कोई तरीका नहीं जानता जो केवल मौजूद है क्योंकि यह मेमोरी मैप्ड है। हालाँकि, निष्पादन योग्य वस्तुओं /procको चलाने के दौरान पहुँचा जा सकता है , इसलिए यह केवल लाइब्रेरी और अन्य मेमोरी मैप की गई फाइलें हैं जो पुनर्प्राप्ति से परे हो सकती हैं। यदि आप इसके बारे में अधिक विवरण चाहते हैं, तो आपको इसे एक अलग प्रश्न के रूप में पूछना चाहिए।
18

8

क्या xtermरैम में कैश की गई प्रक्रिया चल रही है?

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

यदि यह अन्य फ़ाइलों पर निर्भर करता है (जो कि "खुली" स्थिति में नहीं हैं) जो हटाए गए या प्रतिस्थापित किए गए हैं, तो यह समस्या का कारण हो सकता है लेकिन कुछ के लिए असतत के रूप में xterm, यह एक मुद्दा नहीं है।


6
काफी नहीं .. कार्यक्रम के कुछ हिस्सों को केवल जरूरत पड़ने पर मेमोरी में पढ़ा जाता है, और किसी भी समय मेमोरी को अन्य उपयोगों के लिए खाली करने के लिए छोड़ दिया जा सकता है, और इसलिए बाद में फिर से पढ़ने की आवश्यकता होगी (जब प्रोग्राम उन हिस्सों तक पहुंचने की कोशिश करता है फिर )।
Psusi

17
यह जरूरी नहीं कि रैम में हो। लेकिन फ़ाइलें वास्तव में तब तक नहीं हटाई जाती हैं जब तक कि वे खुली न हों, जिसमें xterm निष्पादन योग्य भी शामिल है।
user253751

@ मिनीबिस, इसलिए, मेरा जवाब;)
स्यूसी

2

यह वास्तव में कंप्यूटर कैसे काम करता है इसकी एक विशेषता है: जब किसी प्रोग्राम को लागू किया जाता है तो यह वास्तव में मेमोरी में लोड होता है और यह वहां से काम करता है।

एक फ़ाइल वास्तव में उसी तरह से काम करती है। समस्याओं से बचने के लिए UNIX-ish सिस्टम में कई फाइलें ताले बनाती हैं।

वास्तविक पहेली यह है कि आप विंडोज में ऐसी और समान चीजें क्यों नहीं कर सकते हैं।

यह सुविधा वास्तव में वह है जो आपको पूरे सिस्टम को अपडेट करने की अनुमति देती है, जिसमें आपके सिस्टम में सक्रिय प्रोग्राम शामिल हैं। ;)


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