कमांड "xterm xterm" एक अनंत पुनरावृत्ति क्यों बनाता है?


31

मैं Ubuntu 14.04 (64 बिट) चला रहा हूं। जब मुझे पहली बार कमांड के बारे में पता चला xterm, मैंने कमांड की कोशिश की xterm xterm, और यह असीम रूप से नई xterm विंडो खोलने लगा।
ctrl + Cइसे तुरंत बंद कर देता है और सभी विंडो बंद कर देता है।

लेकिन मैं यह देखना चाहता था कि यह कितनी दूर तक जाता है और इसे लंबे समय तक चलने दे सकता है। यह लगभग सभी रैम को खा गया और अंततः बंद हो गया (मुझे लगता है कि सिस्टम द्वारा ही)।

तो बस जिज्ञासा से बाहर, ऐसा क्यों / कैसे होता है?


3
ऑफ-टॉपिक: इसे बंद कर दिया गया था क्योंकि यह संभवतः बहुत अधिक मेमोरी का उपयोग करता था और ओओएम (आउट-ऑफ-मेमोरी) हत्यारे द्वारा मारा गया।
Léo Lam

5
यह संस्करण 301 द्वारा तय किया जाना चाहिए : "(केवल अल पॉले द्वारा पैच / रिपोर्ट द्वारा इंगित) SHELLमें पाए जाने वाले कार्यक्रमों के लिए केवल पर्यावरण चर सेट करें /etc/shells"। (उत्तर बताते हैं कि SHELLपर्यावरण चर के साथ क्या है )।
क्रिस्टियन सियुपिटु

@CristianCiupitu - +1 - मैंने अभी संस्करण 308 स्थापित किया है - और आवर्ती टर्मिनलों को खोलने के बजाय, यह एक रिक्त एक को खोलता है, और दूसरे को बैश के साथ एक (दूसरे को संभवतः पहले श्लेष्म का 'खोल' कहा जाता है।
Wilf

जवाबों:


26

मैं (अनुमान) इस वजह से पहले पैरामीटर आप को देने xtermहै खोल उपयोग करने के लिए - xterm bash(या xterm /bin/bash), xterm pythonआदि

तो यह चलता है xterm, xtermएक शेल के रूप में शुरू करने की कोशिश करता है , जो दूसरे xtermको उस शेल के रूप में शुरू करता है, फिर एक और, और एक और ...

आप शायद दौड़कर इस पर थोड़ा और पा सकते हैं man xterm


24
हाँ। पहला xtermसेट करता $SHELLहै xtermऔर दूसरा शुरू करता हैxterm इसके खोल के रूप में। अन्य इस प्रकार xtermकमांड का उपयोग करता है $SHELLक्योंकि यह इस प्रकार से एक और शुरू कर रहा है xterm, ...
फ्लोरियन डिस्च

6
उत्तर का यह हिस्सा स्पष्ट नहीं है: "जो दूसरा शुरू करता है xterm उस शेल के रूप में करता है"। ऐसा क्यों होता है? धन्यवाद @FlorianDiesch उस भाग को समझाने के लिए।
जॉन कुगेलमैन

@ जॉन कोहेलमैन - पहला xterm शुरू होता है दूसरा xtermअपने शेल के रूप में, दूसरे xtermतीसरे शुरू होता है xtermअपने शेल के रूप में, तीसरे शुरू होता है इसके खोल ... आदि के रूप में चौथा
विल्फ़

3
मुझे लगता है कि पहला क्यों xtermशुरू होता है दूसरा xterm: यह इसलिए है क्योंकि आपने टाइप किया है xterm xterm। लेकिन दूसरा क्यों करता हैxterm तीसरा शुरूxterm ? आपने टाइप नहीं किया xterm xterm xterm, इसलिए यह स्पष्ट नहीं है कि तीसरा क्यों xtermशुरू होता है। फ्लोरियन की टिप्पणी बताती है कि क्यों।
जॉन कुगेलमैन

1
तो बस जिज्ञासा से यह भी संभव है gnome-terminal?
तुकसन

16

लघु संस्करण: xterm का तर्क xterm द्वारा निष्पादित करने का खोल है; शेल को पर्यावरणीय संस्करण में सेट किया जाता है, इसलिए आगे की कॉल एक करते हैं10 PRINT "xterm" 20 GOTO 10 पुनरावृत्ति करती है।

दीर्घ संस्करण:

  1. xterm xtermxtermxterm कॉल को xterm के खोल के रूप में पास करता है$SHELLवेरिएबलxterm 1 पैरामीटर को निष्पादित करने के लिए शेल के रूप में व्याख्या की जाती है)
  2. तब, आपके xterm xtermआदेश द्वारा निष्पादित xterm $SHELL- इस मामले में, एक और xterm उदाहरण बनाता है (क्योंकि $SHELL=xtermअब)
  3. $SHELL=xterm पहले से ही, इसलिए नया बनाया xterm निष्पादित करता है xterm
  4. गोटो ३

आगे की पढाई: man xterm

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