कार्यप्रणाली और परिचय
रिमोट Ubuntu सर्वर पर SSH सत्र के दौरान अचानक नेटवर्क टूटने से चल रहे महत्वपूर्ण कार्य बाधित हो सकते हैं। ऐसी परिस्थितियों में screen यूटिलिटी सिस्टम प्रशासकों के लिए ढाल का काम करती है। यह टूल टर्मिनल कनेक्शन समाप्त हो जाने के बावजूद बैकग्राउंड में प्रक्रियाओं को निर्बाध रूप से चालू रखने की सुविधा देता है। इस गाइड में हम नए सत्र बनाने, पृष्ठभूमि में स्क्रिप्ट निष्पादित करने, निष्क्रिय सॉकेट्स को साफ करने और उपयोगी कॉन्फ़िगरेशन लागू करने की पूरी कार्यविधि विस्तार से समझेंगे।
screen पैकेज इंस्टॉलेशन और सत्र प्रबंधन
सिस्टम रिपॉजिटरी इंडेक्स को रीफ्रेश करते हुए screen पैकेज को स्थापित करने के लिए निम्न कमांड चलाएं:

सॉफ्टवेयर की सफल स्थापना और वर्तमान संस्करण की पुष्टि हेतु screen -version निष्पादित करें।
टर्मिनल पर प्रदर्शित विवरण यह प्रमाणित करता है कि यूटिलिटी उपयोग के लिए पूरी तरह उपलब्ध है।
⚙️ [प्रमुख कमांड ऑप्शन्स]
-S : सत्र को स्पष्ट पहचान देने के लिए अपनी पसंद का नाम असाइन करता है।-ls : सिस्टम में मौजूद सभी सक्रिय तथा बैकग्राउंड सत्रों की सूची दिखाता है।-d : जुड़े हुए टर्मिनल से वर्तमान सत्र को अलग (Detach) करके बैकग्राउंड में भेजता है।-m : अनिवार्य रूप से नया सत्र प्रारंभ करता है, जो स्वचालित बैकग्राउंड जॉब्स के लिए आदर्श है।-r : बैकग्राउंड में मौजूद किसी अलग किए गए सत्र से पुनः जुड़ता है (Re-attach)।-wipe : अमान्य, क्रैश हुए या अनुपयोगी डेड सॉकेट्स को सूची से साफ करता है।

टर्मिनल इंटरफ़ेस में प्रवेश किए बिना सीधे पृष्ठभूमि में प्रक्रिया प्रारंभ करने के लिए screen -S backup_task -d -m sleep 60 कमांड का उपयोग किया जाता है।
यहाँ -S backup_task पैरामीटर सत्र का नाम निर्धारित करता है, जबकि -d -m का संयोजन sleep 60 टास्क को सीधे डिटैच्ड मोड में रन करता है।

वर्तमान में कार्यरत सत्रों की स्थिति की समीक्षा करने के लिए screen -ls निष्पादित करें।
परिणाम से स्पष्ट होता है कि पूर्व में निर्मित backup_task सत्र अपने यूनिक प्रोसेस आईडी के साथ डिटैच्ड (Detached) स्थिति में सक्रिय है।

बैकग्राउंड निष्पादन और आउटपुट ट्रैकिंग
पृष्ठभूमि कार्यों के आउटपुट को सुरक्षित रखने के लिए एक समर्पित कार्य डायरेक्टरी और प्रारंभिक लॉग फाइल तैयार करें: mkdir -p ~/screen_demo && echo '작업 준비 완료' > ~/screen_demo/task.log।

कंसोल को ब्लॉक किए बिना निरंतर चलने वाली लूप स्क्रिप्ट को बैकग्राउंड में लॉन्च करने के लिए screen -S build_job -d -m bash -c 'for i in {1..5}; do echo "진행 단계: $i" >> ~/screen_demo/task.log; sleep 1; done' कमांड चलाएं।
इस निष्पादन में -S build_job सत्र का शीर्षक तय करता है, और -d -m विकल्प प्रति सेकंड अंतराल पर लॉग दर्ज करने वाली स्क्रिप्ट को बैकग्राउंड में सुरक्षित रखता है।

सिस्टम पर सक्रिय सभी सत्रों की वर्तमान स्थिति जानने के लिए फिर से screen -ls चलाएं।
आउटपुट पुष्टि करता है कि पहले से चल रहे backup_task के साथ नव-निर्मित build_job सत्र भी सफलतापूर्वक डिटैच्ड (Detached) मोड में चल रहा है।

बैकग्राउंड लूप के सुचारू निष्पादन की पुष्टि करने के लिए 2 सेकंड की प्रतीक्षा के बाद लॉग सामग्री देखें: sleep 2 && cat ~/screen_demo/task.log।
फाइल में क्रमिक रूप से दर्ज रिकॉर्ड्स यह सत्यापित करते हैं कि बैकग्राउंड प्रोसेस निर्धारित निर्देशों को बिना किसी त्रुटि के पूरा कर रहा है।

निष्क्रिय सत्रों को बंद करना और सॉकेट सफाई
अनावश्यक सत्रों को हटाने की प्रक्रिया के अभ्यास हेतु screen -S zombie_task -d -m sleep 100 के माध्यम से एक डमी बैकग्राउंड सत्र शुरू करें।
यहाँ -S zombie_task के साथ -d -m विकल्प 100 सेकंड की स्लीप प्रक्रिया को पृष्ठभूमि में निष्पादित करते हैं।

सत्रों की वर्तमान स्थिति देखने के लिए screen -ls निष्पादित करें।
कंसोल पर प्रदर्शित सूची दर्शाती है कि नव-निर्मित zombie_task सहित कुल 3 सत्र बैकग्राउंड (Detached) मोड में कार्यरत हैं।

किसी सत्र के अंदर गए बिना उसे बाहर से सुरक्षित रूप से समाप्त करने के लिए screen -S zombie_task -X quit कमांड का उपयोग करें।
यह निर्देश -S zombie_task द्वारा निर्दिष्ट सत्र को सीधे -X quit सिग्नल भेजकर प्रोसेस को पूर्णतः टर्मिनेट कर देता है।

अनपेक्षित रूप से कटे या अनुपयोगी रह गए सॉकेट्स (Dead sessions) की पहचान कर उन्हें हटाने के लिए screen -wipe कमांड निष्पादित करें।
यह टूल सॉकेट्स की स्थिति की जांच करके अप्रयुक्त प्रविष्टियों को साफ करता है, जिससे केवल वैध build_job और backup_task सत्र ही सुरक्षित बचते हैं।

सिस्टम में अंतिम सत्र स्थिति को प्रमाणित करने के लिए दोबारा screen -ls चलाएं।
आउटपुट स्पष्ट करता है कि बंद किया गया zombie_task सूची से पूरी तरह हट चुका है और शेष 2 सत्र सामान्य रूप से सक्रिय हैं।

स्क्रॉलबैक बफर विस्तार और .screenrc सेटअप
व्यक्तिगत प्राथमिकताओं को स्थायी रूप से कॉन्फ़िगर करने के लिए touch ~/.screenrc की मदद से कॉन्फ़िग फाइल बनाएं।

लंबे कमांड आउटपुट को ट्रंकेट होने से बचाने और स्क्रॉल इतिहास को 5,000 पंक्तियों तक बढ़ाने के लिए echo 'defscrollback 5000' >> ~/.screenrc जोड़ें।

टर्मिनल विंडो के नीचे स्थायी रूप से विंडो नंबर, शीर्षक और होस्टनाम प्रदर्शित करने वाली स्टेटस बार जोड़ने हेतु echo 'caption always "%{= kw}%-w%{= wk}%n %t%{-}%+w = %H"' >> ~/.screenrc निष्पादित करें।

कॉन्फ़िगरेशन के सही संकलन की जांच के लिए tail -n 2 ~/.screenrc निष्पादित करें।
अंतिम दो पंक्तियों का आउटपुट यह साबित करता है कि बफर विस्तार और स्टेटस बार कैप्शन दोनों सेटिंग्स फाइल में सही ढंग से सहेजी जा चुकी हैं।

इस गाइड में हमने Ubuntu वातावरण में screen यूटिलिटी के प्रयोग से सत्रों को स्थिर रखने, बैकग्राउंड कार्य संचालित करने और कॉन्फ़िगरेशन ट्यून करने के आवश्यक तरीके सीखे।
लंबे समय तक चलने वाली सर्वर प्रक्रियाओं को SSH कनेक्शन टूटने के डर के बिना पूरा करने के लिए इन युक्तियों का नियमित उपयोग करें।