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
Eu acidentalmente criei mais de 1000 telas. Como eu mato todos eles com um comando? (Ou alguns)
Se as telas estiverem mortas, use:
screen -wipe
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
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
.
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 \).
Tags bash gnu-screen kill linux