linux - अलग स्क्रीन सत्र को मार डालो




gnu kill (8)

मैंने कहीं से सीखा एक अलग स्क्रीन मारा जा सकता है

स्क्रीन -एक्स-एस [सत्र # आप मारना चाहते हैं] मार डालो

जहां [सत्र # आप मारना चाहते हैं] से प्राप्त किया जा सकता है

स्क्रीन -एलएस

लेकिन यह काम नहीं करता है। कुछ ग़लत है? सही तरीका क्या है?


"मार" केवल एक स्क्रीन विंडो को मार देगा। पूरे सत्र को "मारने" के लिए, quit उपयोग करें।

उदाहरण

$ screen -X -S [session # you want to kill] quit

आप एक अलग सत्र को मार सकते हैं जो निम्न कार्य करके स्क्रीन सत्र में प्रतिक्रिया नहीं दे रहा है।

  1. अलग स्क्रीन सत्र की पहचान करने के लिए screen -list टाइप करें।

    ~$ screen -list  
        There are screens on:  
             20751.Melvin_Peter_V42  (Detached)  
    

    नोट: 20751.Melvin_Peter_V42 आपका सत्र आईडी है।

  2. अलग स्क्रीन सत्र से जुड़ा हो जाओ

    screen -r 20751.Melvin_Peter_V42
  3. एक बार सत्र से कनेक्ट होने पर Ctrl + A दबाएं, फिर टाइप करें :quit


इसे अपने ~/.bashrc :

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"

फिर सभी स्क्रीन सत्र को साफ करने के लिए cleanscreen का उपयोग करें।


एक सत्र को मारना आसान है, जब कुछ सार्थक नाम दिया जाता है:

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit

वैकल्पिक रूप से, आपके स्क्रीन सत्र में आपको बस इतना करना है कि बाहर निकलें

यह स्क्रीन द्वारा शुरू किए गए शेल सत्र को मार देगा, जो आपके द्वारा स्क्रीन सत्र को प्रभावी रूप से समाप्त कर देता है।

स्क्रीन सत्र आईडी, आदि से परेशान करने की कोई ज़रूरत नहीं है


सभी अलग-अलग स्क्रीन सत्रों को मारने के लिए, इस फ़ंक्शन को अपने .bash_profile में शामिल करें:

killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}

इसे चलाने के लिए, killd कॉल करें


== ISSUE THIS COMMAND
[[email protected] ~]$ screen -ls


== SCREEN RESPONDS
There are screens on:
        23487.pts-0.devxxx      (Detached)
        26727.pts-0.devxxx      (Attached)
2 Sockets in /tmp/uscreens/S-xxx.


== NOW KILL THE ONE YOU DONT WANT
[[email protected] ~]$ screen -X -S 23487.pts-0.devxxx kill


== WANT PROOF?
[[email protected] ~]$ screen -ls
There is a screen on:
        26727.pts-0.devxxx      (Attached)
1 Socket in /tmp/uscreens/S-xxx.

screen -wipe

सभी मृत स्क्रीन सत्रों को साफ करना चाहिए।





gnu-screen