सर्वर से कनेक्ट करने के बाद स्क्रीन सेशन को फिर से खोलें


1

Im मेरे vps पर केवल एक स्क्रीन सत्र में काम करता है जो हर समय चलता है। जब मैं ssh के माध्यम से इस सर्वर से जुड़ता हूं, तो मैं इसे bash उपनाम के साथ पुन: लिखता हूं

alias screenr='screen -r -d'

मैं क्या चाहता हूँ:

सर्वर से कनेक्ट करना और सत्र को स्वचालित रूप से रीटेट करना।

मैंने क्या कोशिश की:

screen -rमेरे .bashrc के अंत में जोड़ने से स्क्रीन से एक सूचना संदेश जाता है, कि मैं पहले ही सत्र से जुड़ा हुआ हूं।

किसी भी विचार, या मैं सिर्फ आदमी पृष्ठ पर एक पैरामीटर याद किया?

जवाबों:


3

अपने bashrc के बजाय, अपने ssh config फाइल (~ / .ssh / config) का उपयोग करने का प्रयास करें। लॉगिन पर कमांड चलाने के लिए आप इसे बदल सकते हैं। उदाहरण के लिए:

Host some_alias
Hostname                your_vps.dyndns.org
Port                    22
User                    some_user
PermitLocalCommand      yes
LocalCommand            screen -dRR screen_session_name

फिर आपको बस कुछ_एसएलएस करना है और आप अपने स्क्रीन सत्र को स्वचालित रूप से नाम स्क्रीन_सैशन_नाम (या यदि यह मौजूद नहीं है तो बनाएँ) के साथ रीटेट करें ।

संपादित करें: वैसे, यह आपके स्थानीय मशीन पर जाता है, आपके सर्वर पर नहीं।


1
-1 स्थानीय सिस्टम LocalCommandपर निष्पादित होता है, रिमोट सिस्टम पर नहीं (इसलिए कमांड नाम)।
Arcege

3

मैं अपने .bash_profile में निम्नलिखित का उपयोग करता हूं:

# if not running screen, attached to a terminal and is myusername (not run through sudo)
if [ -z "${STY}" -a -t 0 -a X${USER} = Xmyusername ]; then
    # function to re/attach to screen
    reattach () {
        # if Agent Forwarding is active, set up a mechanism to update the socket
        if [ -n "${SSH_AUTH_SOCK}" ]; then
            ln -snf "${SSH_AUTH_SOCK}" "${HOME}/.ssh/agent-screen"
            SSH_AUTH_SOCK="${HOME}/.ssh/agent-screen" export SSH_AUTH_SOCK
        fi
        # replace the login shell with screen
        exec screen -A -D -RR ${1:+"$@"} ;
    }
    # remove any defunct sessions
    screen -wipe
    echo 'starting screen... (type Cntl-C to abort)'
    sleep 5 && reattach
fi

यह एक अनूठा सत्र बनाता है जिसे मैं लॉगिन पर रीटच करता हूं। अगर मैं सिर्फ एक खोल चाहता हूं तो यह 5 सेकंड इंतजार करता है। myusernameपहले ifखंड में बदलें ।


मुझे यह पसंद है - एक दो नोट: 1. एक जगह को इसमें जोड़ा जाना चाहिए: 'Xmyusername]
जम्हर

धन्यवाद; वास्तव में, मैं इसे दूसरे उत्तर से कॉपी और पेस्ट करता हूं, इसलिए मुझे उस एक को भी ठीक करना होगा।
Arsege
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.