Screen
जब भी यह SIGCHLD
सिग्नल प्राप्त करता है, तो पियो / सॉकेट की जाँच करता है । यदि सॉकेट गायब है, तो इसे फिर से बनाया जाएगा। तो समाधान प्रक्रिया को खोजने और भेजने के लिए है SIGCHLD
।
मेरे डेबियन सिस्टम पर, screen
सेटगिड के रूप में स्थापित किया गया प्रतीत होता है, utmp
लेकिन सेट्यूड नहीं, इसलिए नीचे दिए गए FAQ से पहला समाधान:
$ kill -CHLD 30860
$ ls /var/run/screen/S-username/
30860.pts-4.localhost
उन प्रणालियों पर जहां स्क्रीन को सेट किया गया है root
, यह काम नहीं करेगा, और आपको कर्नेल को आपके लिए संकेत भेजने के लिए मजबूर करने के लिए सक्रिय स्क्रीन सत्र की एक बच्चे की प्रक्रिया को मारने की आवश्यकता होगी। इसका मतलब है कि बाकी हिस्सों के साथ फिर से जुड़ने के लिए अपनी एक स्क्रीन विंडो का त्याग करना (बुद्धिमानी से चुनें!)।
एक संग्रहीत गेंटू विकी FAQ से :
सॉकेट मिसिंग
कभी-कभी अभी भी चल रहे स्क्रीन के सॉकेट को नष्ट किया जा सकता है, हालांकि वास्तविक प्रक्रिया और इसकी सभी बाल प्रक्रियाएं अभी भी चल रही हैं। स्क्रीन-लिस्ट " http://www4.informatik.uni-erlangen.de/ पर इससे पुनर्प्राप्त करने के लिए कुछ आसान निर्देश (और कुछ अन्य असामान्य समस्याओं) से निपटने के लिए कुछ आसान निर्देश प्रदर्शित करेगा।" ~ jnweiger / screen-faq.html # MISC
नीचे के रास्ते का लगभग 2/3 भाग।
प्रश्न: किसी अज्ञात कारण से, /o / tmp / स्क्रीन / S-myname में फेनो चला गया है, और मैं अपना स्क्रीन सत्र फिर से शुरू नहीं कर सकता। क्या पंद्रह को फिर से बनाने का एक तरीका है?
A: स्क्रीन जब भी कोई SIGCHLD सिग्नल प्राप्त करता है, तो वह पांचो / सॉकेट की जांच करता है। यदि गुम हो जाए, तो फ़ोरो / सॉकेट को फिर से बनाया जाता है।
यदि स्क्रीन नॉन सेट-यूड चल रही है तो उपयोगकर्ता kill -CHLD screenpid
सीधे (यह -CHILD
कुछ सिस्टम पर है) जारी कर सकता
है । स्क्रीनपीड एक ps -x
लिस्टिंग में पाया गया स्क्रीन प्रक्रिया की प्रक्रिया-आईडी है ।
लेकिन आमतौर पर यह काम नहीं करेगा, क्योंकि स्क्रीन को सेतुइड रूट स्थापित किया जाना चाहिए। इस मामले में आप इसे सिग्नल नहीं भेज पाएंगे, लेकिन कर्नेल होगा। ऐसा तब होता है, जब भी स्क्रीन का कोई बच्चा अपनी स्थिति बदलता है। स्क्रीन के अंदर चलने वाले "कम से कम महत्वपूर्ण" शेल की प्रक्रिया-आईडी (नीचे शेलपिड) का पता लगाएं। कोशिश करो kill -STOP shellpid
। यदि पंद्रह / सॉकेट फिर से प्रकट नहीं होता है, तो शेल प्रक्रिया को नष्ट करें। बाकी को बचाने के लिए आप एक खोल को पवित्र करते हैं। यदि कुछ भी काम नहीं करता है, तो कृपया खोए हुए स्क्रीन सत्र में चल रही सभी प्रक्रियाओं को हटाने के लिए मत भूलना।