Sessie met losstaand scherm uitschakelen

Ik heb ergens geleerd dat een losstaand scherm kan worden vernietigd door

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

waar [session # you want to kill] vandaan kan worden gehaald

screen -ls

Maar dit werkt niet. Is er iets mis? Wat is de juiste manier?


Antwoord 1, autoriteit 100%

“kill” zal slechts één schermvenster doden. Gebruik quitom de volledige sessie te “beëindigen”.

Voorbeeld

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

Gebruik voor dode sessies:
$ scherm -vegen


Antwoord 2, autoriteit 39%

U kunt een losgekoppelde sessie die niet reageert binnen de schermsessie beëindigen door het volgende te doen.

  1. Typ screen -listom de losgekoppelde schermsessie te identificeren.

    ~$ scherm -lijst
      Er zijn schermen op:
         20751.Melvin_Peter_V42 (Vrijstaand)
    

    Opmerking: 20751.Melvin_Peter_V42is uw sessie-ID.

  2. Gehecht raken aan de sessie met losstaand scherm

    scherm -r 20751.Melvin_Peter_V42
  3. Eenmaal verbonden met de sessie drukt u op Ctrl+ Aen typt u vervolgens :quit


Antwoord 3, autoriteit 11%

Lijstschermen:

screen -list

Uitvoer:

There is a screen on:
23536.pts-0.wdzee       (10/04/2012 08:40:45 AM)        (Detached)
1 Socket in /var/run/screen/S-root.

Kill screen-sessie:

screen -S 23536 -X quit

Antwoord 4, autoriteit 9%

Het is gemakkelijker om een sessie te beëindigen als er een betekenisvolle naam wordt gegeven:

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

Antwoord 5, Autoriteit 3%

U kunt gewoon naar de plaats gaan waar de schermsessie is gehuisvest en uitgevoerd:

screen -ls

die resulteert in

There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.

en verwijder het gewoon:

  1. CD / TMP / USCREENS / S-XXX 
  2. LS 
  3. 26727.PTS-0.DEVXXX 
  4. RM 26727.PTS-0.DEVXXX 
  5. LS 

De uscreensDirectory heeft geen 26727.pts-0.devxxxbestand in het meer. Nu om ervoor te zorgen dat dit gewoon typt:

screen -ls

en u zou moeten krijgen:

Geen sockets gevonden in / TMP / USCreens / S-XXX.


Antwoord 6, Autoriteit 2%

screen -wipe

moet alle dode schermsessies reinigen.


Antwoord 7, Autoriteit 2%

Voeg dit toe aan uw ~/.bashrc:

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

Gebruik vervolgens cleanscreenom alle schermsessie schoon te maken.


Antwoord 8, Autoriteit 2%

Voor mij een eenvoudig

exit

werkt. Dit komt vanuit de screensessie.


Antwoord 9

Om alle vrijstaande schermsessies te doden, omvatten deze functie in uw .bash_profile:

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

Om het uit te voeren, bel dan killd


Antwoord 10

== ISSUE THIS COMMAND
[xxx@devxxx ~]$ 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
[xxx@devxxx ~]$ screen -X -S 23487.pts-0.devxxx kill
== WANT PROOF?
[xxx@devxxx ~]$ screen -ls
There is a screen on:
        26727.pts-0.devxxx      (Attached)
1 Socket in /tmp/uscreens/S-xxx.

Antwoord 11

Als alternatief hoeft u tijdens uw schermsessie alleen maar exit

te typen

Hiermee wordt de shell-sessie beëindigd die door het scherm wordt gestart, waardoor de schermsessie waarop u zich bevindt in feite wordt beëindigd.

Je hoeft je niet bezig te houden met schermsessie-ID, enz.

Other episodes