यदि आपके पास वास्तव में एक अग्रभूमि काम है, तो बैश इसे पूरा होने की प्रतीक्षा कर रहा है, यह कमोबेश एक अग्रभूमि नौकरी की परिभाषा है । यदि बैश में अभी भी टर्मिनल का नियंत्रण है, तो जांचें कि क्या हो रहा है jobs -l
, जैसे:
$ ncat -kl -p 10111 &
[1] 13404
$ ncat -kl -p 10222 &
[2] 13405
$ ncat -kl -p 10333 &
[3] 13406
$ jobs -l
[1] 13404 Running ncat -kl -p 10111 &
[2]- 13405 Running ncat -kl -p 10222 &
[3]+ 13406 Running ncat -kl -p 10333 &
मैंने इसके लिए तीन पृष्ठभूमि ncat
सुनने की प्रक्रिया शुरू की । आप नौकरी की स्थिति के लिए "संपन्न" या "रोका" भी देख सकते हैं।
आप प्रभावी रूप से स्टीफन सीडेल के SIGSTOP / SIGCONT विधि का उपयोग करके एक अलग शेल से अग्रभूमि की नौकरी की पृष्ठभूमि तैयार कर सकते हैं (हालांकि एक शेल द्वारा भेजा गया वास्तविक संकेतCtrl - ZSIGTSTP है, या तो सिग्नल को काम करना चाहिए)।
जब शब्द अग्रभूमि और पृष्ठभूमि का उपयोग किया जाता है, तो प्रक्रियाओं और नौकरियों के बीच एक सूक्ष्म अंतर होता है । केवल एक शेल अग्रभूमि नौकरी है , कई अग्रभूमि प्रक्रियाएं हो सकती हैं (यह टर्मिनल प्रक्रिया समूह आईडी से संबंधित है , और जब आप एक पाइपलाइन में दो या अधिक प्रक्रिया शुरू करते हैं तो देखा जा सकता है)।
शेल के नियंत्रण में चल रही प्रक्रियाओं या पाइपलाइन को "नौकरी" के रूप में संदर्भित किया जाता है, जब आप उस आदेश bg
या fg
आदेश का उपयोग करते हैं जिसका आप स्पष्ट रूप से सबसे हालिया कार्य का उल्लेख कर रहे हैं - मेरे मामले +
में ऊपर वाले के साथ। इन नौकरियों को (अन्य चीजों के बीच) भी स्पष्ट रूप से% 1% 2 या% 3 (संख्या में []
) के रूप में संदर्भित किया जा सकता है ।
एक अयोग्य fg
आदेश केवल एक नौकरी को प्रभावित करेगा, सबसे हाल ही में, इसलिए आपको वर्तमान स्थिति की अपनी समझ में गलत हो सकता है। एक पृष्ठभूमि नौकरी अभी भी टर्मिनल को लिख सकती है :
echo foo > /dev/tcp/127.0.0.1/10111
यह निर्भर कर सकता है कि प्रोग्राम टर्मिनल को कैसे संभालता है, ncat
लेखन के लिए ठीक काम करता है। पढ़ने के लिए हालांकि कार्यक्रम निष्पादन को रोक देंगे, और आपको "स्टॉप्ड" संदेश दिखाई देगा। शेल प्रक्रियाएं शुरू करेगा और उन्हें SIGTTIN सिग्नल से बाहर निकलने या प्राप्त करने के लिए इंतजार करेगा ( nohup
यह एक तरीका है, जैसा कि है disown
)।
आप किसी विशिष्ट रुके हुए कार्य को पृष्ठभूमि में रख सकते हैं
$ bg %3
(मेरे मामले में मुझे त्रुटि मिलेगी bash: bg: job 3 already in background
)
अन्यथा अगर कोई प्रक्रिया अग्रभूमि में है, जब तक कि कार्यक्रम SIGTSTP को पकड़ नहीं लेता है और कुछ विशेष करता है, तो यह एक त्वरित Ctrl- Zऔर के साथ समस्याओं की संभावना नहीं है bg
। इस संबंध में नेटवर्क कार्यक्रमों के बारे में कुछ खास नहीं है, आने वाले कनेक्शन / डेटा को कर्नेल (एक बिंदु तक) द्वारा बफ़र किया जाएगा। एक स्ट्रीमिंग कनेक्शन में एक अवलोकन योग्य ठहराव हो सकता है।
अधिक विवरण के लिए बैश मैन पेज का " JOB CONTROL " अनुभाग देखें।