Desligar a sessão do ecrã desprendida [fechada]

Aprendi em algum lugar que uma tela isolada pode ser morta por

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

[[1]] onde[sessão # você quer matar] pode ser obtido de {[[2]}
[1]}Screen-ls .

Mas isto não funciona. Passa-se alguma coisa? Qual é a maneira correcta?

Author: Vadim Kotov, 2009-10-02

11 answers

"Matar" só matará uma janela de ecrã. Para" matar " a sessão completa, use quit.

Exemplo

$ screen -X -S [session # you want to kill] quit
 993
Author: innaM, 2014-01-24 18:11:53

Você pode matar uma sessão separada que não está respondendo dentro da sessão de tela fazendo o seguinte.

  1. Tipo screen -list para identificar a sessão de ecrã separada.

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

    Nota: 20751.Melvin_Peter_V42 é o seu ID da sessão.

  2. Acoplar - se à sessão de ecrã desprendida
    screen -r 20751.Melvin_Peter_V42
  3. Uma Vez ligado à sessão, carregue em Ctrl + a depois escreva :quit

 451
Author: Melvin Peter, 2014-03-03 19:47:07

Listar os ecrãs:

screen -list

Resultado:

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.

Desligar a sessão do ecrã:

screen -S 23536 -X quit
 118
Author: nilloc, 2013-01-10 12:43:38

É mais fácil matar uma sessão, quando um nome significativo é dado:

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
 107
Author: Hitman_99, 2010-09-30 13:09:46
Pode ir para o local onde a sessão de ecrã está alojada e correr.
 screen -ls

O que resulta em

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

E basta removê-lo:

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

O directório uscreens já não terá o ficheiro 26727.pts-0.devxxx nele. Agora certifique-se de digitar apenas isto:

screen -ls

E você deve ter:

Não foram encontradas fichas /tmp/uscreens / S-xxx.

 40
Author: rc2012, 2014-03-03 19:49:56
screen -wipe

Deve limpar tudo Morto sessões de ecrã.

 24
Author: Vishv Jeet, 2015-02-12 23:30:14

Para mim um simples

exit

Funciona. Isto é de dentro da sessão de tela.

 18
Author: Nick Desaulniers, 2012-10-18 04:52:11

Adicione isto ao seu ~/.bashrc:

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

Então use cleanscreen para limpar toda a sessão do ecrã.

 17
Author: user2115803, 2014-03-03 19:50:02

Para matar todas as sessões de ecrã separadas, inclua esta função no seu .bash_profile:

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

Para executá - lo, Ligue killd

 15
Author: Rose Perrone, 2013-01-21 21:02:52
== 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
Author: duggi, 2010-06-30 16:14:03

Em alternativa, enquanto na sua sessão de ecrã, tudo o que tem de fazer é o tipo sair

Isto irá acabar com a sessão da linha de comandos iniciada pelo ecrã, que termina efectivamente a sessão do ecrã em que está.

Não é necessário preocupar-se com o ID da sessão do ecrã, etc.

 5
Author: dat789, 2012-03-02 11:21:37