Como faço para matar todas as telas?

53

Eu acidentalmente criei mais de 1000 telas. Como eu mato todos eles com um comando? (Ou alguns)

    
por BrainStone 10.10.2013 / 23:57

5 respostas

74

Você pode usar:

pkill screen

Ou

killall screen

No OSX, o processo é chamado SCREEN em todas as letras maiúsculas. Então, use:

pkill SCREEN

Ou

killall SCREEN
    
por 11.10.2013 / 00:03
12

Se as telas estiverem mortas, use:

screen -wipe
    
por 02.12.2014 / 03:20
5
str=$(screen -ls)  

array=$(echo $str|tr "." "\n")  

for V in $array  
do  
if [ $V -gt 0  ]  
        then screen -S $V -X quit  
fi  
done 
    
por 03.09.2015 / 16:39
4

Recentemente comecei a me familiarizar com o awk. Eu juntei isso e serviu ao seu propósito. Eu postei desde que é muito fácil de entender.

screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'

Em que screen -ls lista todas as telas atuais. grep 'pattern' filtra todas as linhas correspondentes. Podemos, então, obter um identificador para todas as telas desanexadas e, com awk sys {command} , podemos copiar e colar um comando e executá-lo com sys , $1 refere-se ao primeiro argumento escolhido pelo awk. Finalmente, executamos o comando quit com screen -X quit .

    
por 25.10.2017 / 16:35
2

Estou um pouco confuso sobre como você conseguiu criar 1000 "telas". Você quis dizer 1000 janelas de tela (1000 janelas de terminal diferentes em uma única sessão de tela)?

Se você quis dizer 1000 janelas em uma única sessão de tela, uma solução mais elegante seria sair da tela usando o comando C-a \ (ctrl-a seguido por \).

    
por 11.10.2013 / 02:53