web-dev-qa-db-fra.com

Tuer la session d'écran séparée

J'ai appris de quelque part qu'un écran détaché peut être tué par

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

où [la session que vous voulez tuer] peut être obtenue

screen -ls

Mais ça ne marche pas. Quelque chose ne va pas? Quelle est la bonne façon?

837
Tim

"tuer" ne tuera qu'une fenêtre à l'écran. Pour "tuer" la session complète, utilisez quit.

Exemple

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

Pour les sessions mortes, utilisez: $ screen -wipe

1208
innaM

Vous pouvez tuer une session détachée qui ne répond pas dans la session écran en procédant comme suit.

  1. Tapez screen -list pour identifier la session d'écran détachée.

     ~ $ screen -list 
     Des écrans sont disponibles sur: 
     20751.Melvin_Peter_V42 (Détaché) 
    

    Remarque: 20751.Melvin_Peter_V42 est votre identifiant de session.

  2. Connectez-vous à la session d'écran séparée

    screen -r 20751.Melvin_Peter_V42
  3. Une fois connecté à la session, appuyez sur Ctrl + A puis tapez :quit

489
Melvin Peter

Écrans de liste:

screen -list

Sortie:

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 session:

screen -S 23536 -X quit
138
nilloc

Il est plus facile de tuer une session quand un nom significatif est donné:

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

Vous pouvez simplement aller à l’endroit où la session d’écran est hébergée et exécuter:

 screen -ls

qui se traduit par

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

Et simplement l'enlever:

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

Le répertoire uscreens n'aura plus le fichier 26727.pts-0.devxxx. Maintenant, assurez-vous de taper ceci:

screen -ls

et vous devriez obtenir:

Aucune prise trouvée dans/tmp/uscreens/S-xxx.

43
rc2012
screen -wipe

Devrait nettoyer toutes les morts sessions d’écran.

28
Vishv Jeet

ajoutez ceci à votre ~/.bashrc:

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

Puis utilisez cleanscreen pour nettoyer toutes les sessions d’écran.

22
user2115803

Pour moi un simple

exit

travaux. Ceci est dans la session d'écran.

21
Nick Desaulniers

Pour tuer toutes sessions d'écran séparées, incluez cette fonction dans votre .bash_profile:

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

pour l'exécuter, appelez killd

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

Alternativement, pendant votre session écran, tout ce que vous avez à faire est de taper exit

Cela va tuer la session Shell initiée par l'écran, ce qui met effectivement fin à la session d'écran sur laquelle vous êtes.

Pas besoin de s'embêter avec l'identifiant de session écran, etc.

5
dat789