Does tmux ’डिफ़ॉल्ट रूप से लॉगिन गोले के रूप में नई विंडो क्यों बनाता है?


21

जब आप एक नया सत्र शुरू करते हैं tmux या रनिंग सत्र के अंदर एक नई विंडो बनाएँ, इसका डिफ़ॉल्ट व्यवहार शेल चलाना है (उदा .: bash ) एक लॉगिन शेल के रूप में।

मैं समझता हूं कि एक लॉगिन शेल का अभिप्राय विन्यास और कार्यविधियों की दिनचर्या को क्रियान्वित करना है जो रूचिकर हों बस जब आप एक प्रणाली में प्रवेश कर रहे हैं । लेकिन अधिकांश मामलों में (अपवाद के साथ जो आप उपयोग कर सकते हैं tmux जैसा एक लॉगिन शेल) यह उपयोगकर्ता का असली इरादा नहीं है जब वह ऐसा करना चाहता है जब वह एक नई विंडो खोलना चाहता है।

तो यह डिफ़ॉल्ट व्यवहार करने के लिए औचित्य क्या है tmux?


इस मामले के बारे में दस्तावेज केवल यही कहते हैं:

default-command  shell-command
        Set the command used for new windows (if not specified when the
        window is created) to shell-command, which may be any sh(1)
        command.  The default is an empty string, which instructs tmux
        to create a login shell using the value of the default-shell
        option.

जवाबों:


19

इंटरएक्टिव नॉन-लॉगिन शेल आमतौर पर आपके शीर्ष स्तर के लॉगिन शेल को कभी आउटलाइव नहीं करता है, इसलिए वे इसके द्वारा शुरू की गई किसी भी सुविधा की कभी भी उपलब्ध होने की उम्मीद कर सकते हैं, लेकिन tmux के साथ ऐसा नहीं है:

  • आप अपने शेल में लॉग इन करें - & gt; आपकी लॉगिन स्क्रिप्ट्स चलती हैं
  • आप tmux चलाते हैं, कुछ करते हैं, अलग करते हैं
  • अपने शीर्ष स्तर के शेल से बाहर निकलें - & gt; आपके लॉगआउट स्क्रिप्ट चलाए जाते हैं
  • tmux सेशन अभी भी चल रहा है लेकिन आपके लॉगिन शेल द्वारा शुरू की गई कोई भी सुविधा इस समय उपलब्ध नहीं है
  • आप फिर से लॉग इन करते हैं और दूसरे लॉगिन शेल से पुनः जुड़ते हैं
  • नए लॉगिन शेल द्वारा शुरू की गई कोई भी सुविधा tmux द्वारा दिखाई नहीं दे सकती है क्योंकि यह अभी भी पुराने वातावरण के साथ चल रही है (भले ही पर्यावरण को अद्यतन करने के लिए आदेश हों)

कुछ लोग सोच सकते हैं कि tmux स्टार्ट लॉगिन गोले वैसे भी अनावश्यक हैं क्योंकि अधिकांश सेटअप में लॉगआउट स्क्रिप्ट नहीं होती हैं, और लॉगिन स्क्रिप्ट बस कुछ पर्यावरण चर सेट करती हैं।

इसके अलावा अगर आप अपनी लॉगिन स्क्रिप्ट्स में अपने पर्यावरण के चर को जोड़ते हैं (जैसे कि: PATH = $ PATH: / some / other / path) और वे एक से अधिक बार एक ही प्रक्रिया में चलाए जाते हैं पदानुक्रम आप डुप्लिकेट के साथ समाप्त होता है, और यह है ज्यादा कष्टदायी।

लेकिन फिर भी मुझे लगता है कि डिफ़ॉल्ट समझ में आता है।

इसे भी देखें: http://openbsd-archive.7691.n7.nabble.com/tmux-and-login-shells-td170948.html


2
उत्तर के लिए और लिंक के लिए धन्यवाद! मुझे लगता है कि मैं साथ रह सकता हूं exec sh अंत में ... (मैंने ऐसा नहीं सोचा था।)
leogama

3
क्या आपके पास चीजों का कोई ठोस उदाहरण है जो टूट सकता है अगर tmux एक लॉग-इन शेल को स्पॉन नहीं करता है? मुझे लगता है कि मैं अपनी डिफ़ॉल्ट बनाने के बारे में सोच रहा हूं, लेकिन मैं लाइन से नीचे की समस्याओं का निदान नहीं करना चाहता।
Carl Patenaude Poulin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.