मैंने पहले एक लंबे समय तक चलने वाले स्क्रीन सत्र के साथ reattached किया है screen -dr control
। हालाँकि, कभी-कभी यह कमांड स्क्रीन पर रीटैट नहीं करेगा और इसके बजाय हमेशा के लिए हैंग हो जाएगा (10+ मिनट के बाद जिसका मैंने गर्भपात कर दिया)। यह केवल तब होता है जब एसएसएच कनेक्शन अप्रत्याशित रूप से गिरा दिया जाता है और तब नहीं जब स्क्रीन को ठीक से अलग नहीं किया जाता है Ctrl-A d
। अन्य स्विच, जैसे कि screen -x
या screen -D -RR
भी काम नहीं करते हैं।
यह पोस्ट स्क्रीन सत्र आयोजित करने वाले PTY को मारने का सुझाव देती है जिससे स्क्रीन अपने डिस्कनेक्ट को पूरा करेगी। हालाँकि, यह केवल उस शेल को मारता है जिससे screen -dr control
इसे बुलाया गया था।
उदाहरण के लिए:
$ ps -ef | grep control | grep -v grep
nomad 7387 7109 0 13:05 pts/50 00:00:00 screen -dr control
nomad 15299 1 0 Nov27 ? 00:13:47 SCREEN -S control
$ ps -ef | grep bash | grep 'pts/50'
nomad 7109 7108 0 12:49 pts/50 00:00:00 -bash
लिंक्ड पोस्ट bash
पीआईडी 7109 के साथ प्रक्रिया को मारने का सुझाव देता है। यह पीआईडी 7387 के साथ प्रक्रिया को भी मार screen -dr control
देगा। बाद में, मैं अभी भी स्क्रीन से कनेक्ट नहीं कर सकता।
SCREEN -S control
स्क्रीन सत्र शुरू करने वाली प्रक्रिया init
में इसके अभिभावक के रूप में है जिसे मैं स्पष्ट रूप से नहीं मार सकता।
क्या त्रिशंकु स्क्रीन सत्र को फिर से शुरू करने का एक तरीका है?
अपडेट: यह CentOS 6.4 पर कर्नेल 2.6.32-358.6.1.el6.x86_64 का उपयोग करके होता है। सभी गोले संस्करण 4.1.2 (1) -release हैं।
screen -ls
उन "फांसी" मामलों में क्या कहता है?screen -d -r <session>
इसका अर्थ है "अलग होना और ठीक होना" इसलिए पहले हाथ न लगाने से कोई फर्क नहीं पड़ता। (और अक्सर ऐसा करने के लिए, यह नहीं है ...)