हां, SSH के ऊपर चलने वाला एक कार्यक्रम कहीं न कहीं इसके आउटपुट पर निर्भर करेगा। यदि कनेक्शन धीमा है, तो आउटपुट कहीं बफ़र किया जाना चाहिए, और बफ़र्स अनंत नहीं हो सकते हैं, इसलिए यदि वे भरे हुए हैं तो प्रोग्राम को ब्लॉक करना होगा।
ध्यान दें कि आउटपुट आवश्यक रूप से एक टर्मिनल पर नहीं जा सकता है: जैसे कुछ चलाने पर विचार करें
ssh user@somewhere "cat file.txt" > file.txt
यह प्रभावी रूप से फाइल की नकल करेगा। यह काम करने के लिए, बिल्ली का आउटपुट दर कनेक्शन से मेल खाना चाहिए: यह स्पष्ट होना चाहिए कि आउटपुट के कुछ हिस्सों को बीच से खोना अस्वीकार्य होगा।
स्क्रीन उस स्थिति को बदल देगी जिसमें यह एक टर्मिनल की तरह काम करता है और यह बचाएगा कि "टर्मिनल विंडो पर" (प्लस स्क्रॉलबैक) क्या दिखाया जाना चाहिए। यह सब कुछ आपके प्रोग्राम आउटपुट को याद रखने की आवश्यकता नहीं है, केवल उन हिस्सों को जो "विंडो" और स्क्रॉलबैक में फिट होंगे। डिफ़ॉल्ट रूप से, स्क्रीन एक धीमे कनेक्शन (प्रोग्राम को ब्लॉक करने) का इंतजार करेगी, लेकिन इसे "नॉनब्लॉक" सेट करके एक अटक कनेक्शन का पता लगाने के लिए कॉन्फ़िगर किया जा सकता है।
आदमी पृष्ठ से:
नॉनब्लॉक [पर | बंद | अंकतालिका]
स्क्रीन को बताएं कि उपयोगकर्ता इंटरफ़ेस (डिस्प्ले) से कैसे निपटें जो आउटपुट को स्वीकार नहीं करता है। यह तब हो सकता है जब कोई उपयोगकर्ता ^ S या TCP / मॉडेम कनेक्शन को दबाता है, लेकिन कोई हैंगअप प्राप्त नहीं होता है। यदि नॉनब्लॉक बंद है (यह डिफ़ॉल्ट है) स्क्रीन तब तक इंतजार करती है जब तक कि डिस्प्ले आउटपुट को स्वीकार करने के लिए पुनरारंभ नहीं होता है। यदि नॉनब्लॉक चालू है, तो स्क्रीन आउट होने तक प्रतीक्षा करता है (ऑन 1s के रूप में माना जाता है)। यदि प्रदर्शन अभी भी वर्ण प्राप्त नहीं करता है, तो स्क्रीन इसे "अवरुद्ध" मान लेगी और पात्रों को भेजना बंद कर देगी। यदि किसी समय यह वर्णों को स्वीकार करने के लिए पुनरारंभ होता है, तो स्क्रीन डिस्प्ले को अनब्लॉक करेगा और अपडेट की गई विंडो सामग्री को फिर से परिभाषित करेगा।
एक कनेक्शन एक धीमी कनेक्शन से अलग है। सादा एसएसएच स्वचालित रूप से इससे उबर नहीं सकता है, इसलिए आपका कार्यक्रम एक साइट प्राप्त करेगा। दूसरी ओर, स्क्रीन एक डिस्कनेक्ट का पता लगाएगा, स्क्रीन को फिर से जोड़ने तक स्थानीय बफ़रिंग में वापस आ जाएगी। यह रनिंग प्रोग्राम को ब्लॉक नहीं करेगा ।
( nonblock 1
आपके .screenrc
लिए सेटिंग महत्वपूर्ण है यदि आप irssi जैसी कोई चीज़ चलाते हैं जो लगातार आउटपुट का उत्पादन करेगी लेकिन फिर भी उसी समय नेटवर्क से बात करनी चाहिए। ब्लॉकिंग से IRC से डिस्कनेक्ट हो जाएगा, जो कि बहुत कष्टप्रद है ...)