it-swarm.com.de

Beenden Sie die getrennte Bildschirmsitzung

Ich habe irgendwo gelernt, dass ein losgelöster Bildschirm von getötet werden kann

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

woher [Session #, die du töten willst] kann man bekommen?

screen -ls

Das geht aber nicht. Irgendwas falsch gemacht? Was ist der richtige Weg?

837
Tim

"kill" bricht nur ein Bildschirmfenster ab. Verwenden Sie quit, um die gesamte Sitzung zu "beenden".

Beispiel

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

Für tote Sitzungen verwenden Sie: $ screen -wipe

1208
innaM

Sie können eine getrennte Sitzung beenden, die innerhalb der Bildschirmsitzung nicht reagiert, indem Sie die folgenden Schritte ausführen.

  1. Geben Sie screen -list ein, um die getrennte Bildschirmsitzung zu identifizieren.

     ~ $ screen -list 
     Es gibt Bildschirme auf: 
     20751.Melvin_Peter_V42 (Detached) 
    

    Hinweis: 20751.Melvin_Peter_V42 ist Ihre Sitzungs-ID.

  2. Verbinden Sie sich mit der getrennten Bildschirmsitzung

    screen -r 20751.Melvin_Peter_V42
  3. Sobald Sie mit der Sitzung verbunden sind, drücken Sie Ctrl + A dann tippe :quit

489
Melvin Peter

Listenbildschirme:

screen -list

Ausgabe:

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.

Bildschirmsitzung beenden:

screen -S 23536 -X quit
138
nilloc

Es ist einfacher, eine Sitzung zu beenden, wenn ein aussagekräftiger Name vergeben wird:

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

Sie können einfach zu dem Ort gehen, an dem sich die Bildschirmsitzung befindet, und sie ausführen:

 screen -ls

was in ... endet

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

Und entfernen Sie es einfach:

  1. cd/tmp/uscreens/S-xxx
  2. ls
  3. 26727.pts-0.devxxx
  4. rm 26727.pts-0.devxxx
  5. ls

Das Verzeichnis uscreens enthält nicht mehr die Datei 26727.pts-0.devxxx. Um sicherzugehen, geben Sie Folgendes ein:

screen -ls

und du solltest bekommen:

In/tmp/uscreens/S-xxx wurden keine Sockets gefunden.

43
rc2012
screen -wipe

Sollte alle toten Bildschirmsitzungen säubern.

28
Vishv Jeet

füge dies zu deinem ~/.bashrc hinzu:

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

Verwenden Sie dann cleanscreen, um alle Bildschirmsitzungen zu bereinigen.

22
user2115803

Für mich ein einfaches

exit

funktioniert. Dies erfolgt innerhalb der Bildschirmsitzung.

21

Um alle getrennte Bildschirmsitzungen zu beenden, fügen Sie diese Funktion in Ihr .bash_profile ein:

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

um es auszuführen, rufen Sie killd auf.

15
Rose Perrone
== 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.
7
duggi

Alternativ müssen Sie in Ihrer Bildschirmsitzung nur exit eingeben

Dadurch wird die vom Bildschirm initiierte Shell-Sitzung beendet, wodurch die aktuelle Bildschirmsitzung effektiv beendet wird.

Keine Notwendigkeit, sich mit der ID der Bildschirmsitzung usw. zu befassen.

5
dat789