मान लें कि आपके पास GNU screenऔर tmux(और X11, और वर्चुअल कंसोल) दोनों का अभाव है , लेकिन एक लॉगिन शेल और एक अन्य इंटरेक्टिव शेल के बीच स्विच करना चाहते हैं।
आप पहले कंसोल पर लॉगिन करेंगे, और फिर एक नया शेल शुरू करेंगे, अस्थायी रूप से लॉगिन शेल को ब्लॉक करना। वहाँ कुछ काम करने के लिए लॉगिन शेल वापस पाने के लिए, आप करेंगे suspend। फिर आप fgजो कुछ भी वहां थे, उसे जारी रखने के लिए इंटरेक्टिव शेल वापस प्राप्त करेंगे ।
वास्तव में, नौकरी पर नियंत्रण के साथ, लॉगिन शेल कई इंटरेक्टिव शेल को पृष्ठभूमि की नौकरियों के रूप में पेश कर सकता है जिसे आप के साथ स्विच कर सकते हैं fg %1, fg %2आदि, लेकिन लॉगिन शेल पर वापस जाने के लिए, आपको suspendतब तक उपयोग करने की आवश्यकता होगी जब तक आप मैन्युअल रूप से नहीं चाहते kill -s STOP $$।
यह भी ध्यान दें कि एक इंटरेक्टिव शेल में प्रॉम्प्ट Ctrl+ Zइसे स्थगित नहीं करेगा।
संपादित करें: मैं शुरू suspendमें एक स्क्रिप्ट के उपयोग के बारे में एक लंबा काल्पनिक खंड था , लेकिन चूंकि कमांड को नौकरी नियंत्रण की आवश्यकता होती है और चूंकि गैर-संवादात्मक गोले में आमतौर पर नौकरी पर नियंत्रण नहीं होता है, इसलिए मैंने उस अनुभाग को हटा दिया।
के साथ हटाए गए अनुभाग को suspendहटा दिया गया kill -s STOP $$(यह वास्तव में किसी भी अधिक उत्तर का नहीं है, लेकिन यह दूसरों के लिए दिलचस्प हो सकता है):
मान लीजिए कि आपके पास एक स्क्रिप्ट में एक पृष्ठभूमि प्रक्रिया (एक स्क्रिप्ट) है, और यह कि कुछ स्तर पर इस पृष्ठभूमि प्रक्रिया को रोकने की जरूरत है और मूल प्रक्रिया के लिए प्रतीक्षा करने के लिए इसे आगे बढ़ने के लिए कहें। यह इसलिए हो सकता है कि माता-पिता के पास फ़ाइलों को निकालने और स्थानांतरित करने का समय हो या ऐसा कुछ हो।
चाइल्ड स्क्रिप्ट सस्पेंड ( kill -s STOP $$) होगी, और पेरेंट स्क्रिप्ट CONTइसे तब सिग्नल देगी जब इसे जारी रखना ठीक होगा।
यह आपको एक मूल प्रक्रिया और एक बच्चे की प्रक्रिया के बीच एक प्रकार के सिंक्रनाइज़ेशन को लागू करने का अवसर देता है (हालांकि मूल शेल प्रक्रिया के रूप में बहुत ही बुनियादी है या कम से कम यह अनुमान लगाने की आवश्यकता है कि बच्चे की प्रक्रिया निलंबित है, हालांकि यह बच्चा होने से तय किया जा सकता है जाल CONTऔर सस्पेंड नहीं है अगर वह संकेत बहुत जल्दी प्राप्त होता है)।
fork/execसिस्टम कॉल की आवश्यकता होती है