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 quit
om 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.
-
Typ
screen -list
om de losgekoppelde schermsessie te identificeren.~$ scherm -lijst Er zijn schermen op: 20751.Melvin_Peter_V42 (Vrijstaand)
Opmerking:
20751.Melvin_Peter_V42
is uw sessie-ID. -
Gehecht raken aan de sessie met losstaand scherm
scherm -r 20751.Melvin_Peter_V42
-
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:
-
CD / TMP / USCREENS / S-XXX
-
LS
-
26727.PTS-0.DEVXXX
-
RM 26727.PTS-0.DEVXXX
-
LS
De uscreens
Directory heeft geen 26727.pts-0.devxxx
bestand 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 cleanscreen
om 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.