Accidentalmente creé más de 1000 pantallas. ¿Cómo los mato a todos con un solo comando? (O unos pocos)
screen -ls | grep "<name>" | cut -d. -f1 | tr --delete "\t" | xargs kill -9; screen -wipe; screen -ls;
Accidentalmente creé más de 1000 pantallas. ¿Cómo los mato a todos con un solo comando? (O unos pocos)
screen -ls | grep "<name>" | cut -d. -f1 | tr --delete "\t" | xargs kill -9; screen -wipe; screen -ls;
Respuestas:
Puedes usar :
pkill screen
O
killall screen
En OSX, el proceso se llama PANTALLA en mayúsculas. Entonces, use:
pkill SCREEN
O
killall SCREEN
Top
Recientemente comencé a familiarizarme con awk, armé esto y cumplió su propósito. Lo publiqué ya que es bastante fácil de entender.
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
Donde screen -ls
enumera todas las pantallas actuales.
grep 'pattern'
filtra todas las filas coincidentes. Entonces podemos obtener un identificador para todas las pantallas separadas y con el awk sys {command}
que podemos copiar y pegar un comando y ejecutarlo sys
, se $1
refiere al primer argumento recogido por awk. Finalmente ejecutamos el comando quit con screen -X quit
.
screen -ls | grep '(Detached)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
funcionó mejor para mí
Estoy un poco perplejo sobre cómo lograste crear 1000 "pantallas". ¿Quizás quiso decir 1000 ventanas de pantalla (1000 ventanas de terminal diferentes dentro de una sola sesión de pantalla)?
Si se refería a 1000 ventanas en una sola sesión de pantalla, una solución más elegante sería salir de la pantalla con el comando C-a \
(ctrl-a seguido de \).
screen -m sleep 100000
. Esto sucedió y no me di cuenta hasta que ya había creado más de 1000 sesiones de pantalla.
El siguiente comando terminará todas las pantallas inactivas:
perl -e 'while (map { kill 9, [split /\./]->[0] } grep { /Detached/ } split /\n/, qx{screen -ls}) { sleep 1 } exec qw(screen -wipe)'
for scr in $(screen -ls | awk '{print $1}'); do screen -S $scr -X kill; done
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill