सारांश : मैं यह पता लगाने की कोशिश कर रहा हूं कि जब मैं ssh से डिस्कनेक्ट करता हूं तो मेरा tmux सत्र क्यों मर जाता है
विवरण :
मेरे पास tmux एक आर्क लिनक्स सिस्टम पर स्थापित है। जब मैं tmux सत्र शुरू करता हूं तो मैं इससे अलग हो सकता हूं और ssh सत्र सक्रिय होने के दौरान फिर से संलग्न कर सकता हूं। लेकिन अगर मैं अपना ssh सत्र समाप्त करता हूं तो tmux सेशन मार जाता है।
मुझे पता है कि यह सामान्य व्यवहार नहीं है क्योंकि मेरे पास अन्य प्रणाली है जहां tmux सत्र चालू रहता है भले ही ssh सत्र समाप्त हो गया हो और मैं नया ssh कनेक्शन स्थापित करने के बाद tmux सत्र में संलग्न हो सकता हूं। जिस सिस्टम में समस्या है और जो सही ढंग से काम करता है, उसके पास बहुत समान कॉन्फ़िगरेशन हैं, इसलिए मुझे यकीन नहीं है कि क्या जांचना है।
मैं tmux संस्करण 1.9a चला रहा हूं। जिस सिस्टम में समस्या है (जिसके लिए मेरे पास रूट एक्सेस है) के पास 3.17.4-1 का लिनक्स कर्नेल संस्करण है और जो सिस्टम सही काम करता है उसका कर्नेल संस्करण 3.16.4-1-ARCH (मेरे पास रूट नहीं है) प्रणाली)। मुझे संदेह है कि कर्नेल संस्करण समस्या का स्रोत है, हालांकि, मैंने देखा कि सिर्फ एक अंतर है।
मैंने सोचा कि मैं यह देखने के लिए कहूंगा कि क्या किसी ने भी इसी तरह की समस्या देखी है और संभव समाधान के बारे में जानता है।
समस्या के लिए सटीक कदम हैं:
- मशीन को ssh
tmux
tmux शुरू करने के लिए चलाएँctrl-B D
अलग करने के लिए (इस बिंदु पर मैं के साथ reattach सकता है)tmux attach
- करीब ssh सत्र (इस बिंदु पर tmux सत्र को मार दिया गया है, मैं इसे तब देख सकता हूं जब मैं एक अलग इंजन में रूट के रूप में लॉग इन होता हूं)
- ssh और run के साथ फिर से कनेक्ट करें
tmux attach
और मुझे संदेशno sessions
और रनिंगtmux ls
रिटर्न मिलता हैfailed to connect to server: Connection refused
। यह समझ में आता है क्योंकि सेवा नहीं चल रही है। मुझे इससे कोई मतलब नहीं है कि जब मैं ssh सत्र से डिस्कनेक्ट करता हूं तो यह चरण 4 में क्यों मारा जाता है।
स्ट्रेस डेटा:
टिप्पणियों में से एक के जवाब में मैंने यह देखने के लिए स्टॉर्म का उपयोग किया कि सिस्टम tmux सर्वर प्रक्रिया को क्या कहता है। ऐसा लगता है कि जब मैं अपने ssh सत्र (टाइप करके exit
या साथ ctrl-d
) से बाहर निकलता हूं कि tmux प्रक्रिया को मारा जा रहा है। यहाँ स्ट्रेस आउटपुट के अंतिम भाग का एक स्निपेट है।
poll([{fd=4, events=POLLIN}, {fd=11, events=POLLIN}, {fd=6, events=POLLIN}], 3, 424) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=1, si_uid=0} ---
sendto(3, "\17", 1, 0, NULL, 0) = 1
+++ killed by SIGKILL +++
मैंने इसकी तुलना एक अलग प्रणाली से की जहाँ tmux ठीक से काम करता है और उस प्रणाली पर tmux प्रक्रिया मेरे निकलने के बाद भी चलती रहती है। तो मूल कारण यह प्रतीत होता है कि जब मैं ssh सत्र बंद करता हूं तो tmux प्रक्रिया समाप्त हो रही है। मुझे यह पता लगाने में कुछ समय बिताने की आवश्यकता होगी कि क्यों, लेकिन मुझे लगा कि स्ट्रेस सुझाव उपयोगी होने के बाद से मैं अपने प्रश्न को अपडेट करूंगा।