2011-11-22 16 views
18

मै मैक/लिनक्स का उपयोग कर रहा हूं और मुझे पता है कि ctrl-z टर्मिनल में वर्तमान में चल रहे कमांड को रोकता है, लेकिन मैं अक्सर सिस्टम मॉनीटर की जांच करते समय प्रक्रिया अभी भी चल रहा हूं। टर्मिनल में कमांड को रोकने का सही तरीका क्या है?कमांड लाइन प्रोग्राम से बाहर निकलने का सही तरीका?

आमतौर पर मैं पाइथन या रूबी ऐप्स चलाते समय इस समस्या में भाग लेता हूं, मुझे यकीन नहीं है कि इसके साथ कुछ करने के लिए कुछ है, बस सोचा कि मैं इसे जोड़ दूंगा।

+0

यदि आप ctrl-z करते हैं और फिर बाहर निकलें टाइप करें तो यह पृष्ठभूमि अनुप्रयोग बंद कर देगा। –

+0

मैं अभी भी बाहर निकलने के बाद प्रक्रिया को देखता हूं –

+0

ctrl-C पर्याप्त नहीं है? –

उत्तर

35

का उपयोग नियंत्रण-z प्रक्रिया (जो susp तहत कुंजी स्ट्रोक को सूचीबद्ध stty -a से उत्पादन देखें) निलंबित करता है। इससे यह चल रहा है, लेकिन निलंबित एनीमेशन में (इसलिए यह किसी भी CPU संसाधनों का उपयोग नहीं कर रहा है)। इसे बाद में फिर से शुरू किया जा सकता है।

आप स्थायी रूप से बाधा (अक्सर नियंत्रण-सी) के किसी भी एक कार्यक्रम को रोकने के लिए, तो या (अक्सर नियंत्रण \) प्रक्रिया, बाद एक कोर डंप उत्पादन बंद हो जाएगा (जब तक आप 'से बाहर निकलना चाहते हैं उन्हें अक्षम कर दिया है)। आप किसी भी टर्मिनल से प्रक्रिया में भेजे गए एचयूपी या टीईआरएम सिग्नल (या, यदि वास्तव में आवश्यक हो, तो किल सिग्नल, लेकिन पहले अन्य सिग्नल आज़माएं) का उपयोग कर सकते हैं; या आप प्रक्रिया को निलंबित करने के लिए नियंत्रण-जे का उपयोग कर सकते हैं और फिर वर्तमान टर्मिनल से मौत की धमकी भेज सकते हैं, और उसके बाद (मरने के बारे में) प्रक्रिया को अग्रभूमि (fg) में वापस ला सकते हैं।

ध्यान दें कि सभी महत्वपूर्ण संयोजन stty कमांड या समकक्षों के माध्यम से बदल सकते हैं; डिफ़ॉल्ट सिस्टम से सिस्टम में भिन्न हो सकते हैं। आप अपने खोल के नियंत्रण नहीं है, तो बस ctrl + सी मार प्रक्रिया बंद कर देना चाहिए

+3

अच्छा जवाब। मैं 'बीजी' का भी उल्लेख करता हूं जो 'एफजी' के विपरीत है। यह आपको पृष्ठभूमि में अपने प्रोग्राम निष्पादन को फिर से शुरू करने की अनुमति देता है ताकि आप किसी अन्य चीज़ के लिए अपने टर्मिनलों का उपयोग कर सकें। कुछ संबंधित 'अस्वीकार' है जो आपको टर्मिनल से अपने पृष्ठभूमि प्रोग्राम को अलग करने की अनुमति देता है ताकि यह टर्मिनल बंद होने पर भी चल रहा हो। यह देखने के लिए कि आपका खोल किस काम को नियंत्रित कर रहा है, 'जॉब्स' कमांड का उपयोग करें। –

2

यदि आप ctrl-z करते हैं और फिर exit टाइप करें तो यह पृष्ठभूमि अनुप्रयोग बंद कर देगा।

Ctrl+Q एप्लिकेशन को मारने का एक और अच्छा तरीका है।

+0

का उल्लेख करने योग्य था आपके सिस्टम पर 'कंट्रोल-क्यू' मैप किया गया है? यह आमतौर पर 'स्टार्ट' (उत्पादन को रोकने के लिए 'नियंत्रण-एस' का उपयोग करने के बाद आउटपुट को फिर से शुरू करने के लिए) होता है। –

+0

मैं वास्तव में परीक्षण के बाद वास्तव में नोटिस करता हूं कि यह केवल मेरे मैक पर काम करता है। मैंने सोचा कि यह सार्वभौमिक था। ध्यान देने के बाद इसे टकसाया और कोशिश की जब किसी ने इसे एक विकल्प के रूप में पोस्ट नहीं किया। और यह 'ctrl-shift-q' है। लेकिन लिनक्स में मेरे लिए जो कुछ भी किया गया वह टर्मिनल बंद था। उपयोगकर्ता क्या चाहता है नहीं। –

1

Job Control on UNIX systems

पर एक नजर डालें। यदि यह काम नहीं करता है, तो आप ctrl + Z और jobs और kill -9 %<job #> का उपयोग करके इसे मारने का प्रयास कर सकते हैं। '-9' संकेत का एक प्रकार है। सिग्नल की सूची देखने के लिए आप man kill कर सकते हैं।

संबंधित मुद्दे