gnu screen - como - Elimina todas las sesiones de pantalla separadas
screen linux (5)
Aquí hay una solución que combina todas las respuestas: .bashrc
a su .bashrc
o .bash_profile
:
killscreens () {
screen -ls | grep Detached | cut -d. -f1 | awk ''{print $1}'' | xargs kill
}
- esta es una función conveniente, fácil de recordar
- mata solo las pantallas separadas, para evitar que hagas algo tonto
- recuerde abrir un nuevo terminal bash o ejecutar
source .bashrc
para hacer quekillscreens
esté disponible
Gracias a @Rose Perrone, @Milind Shah, y @schatten
Cuando ejecuto screen -ls
, veo lo siguiente. ¿Cómo puedo matar todas las sesiones separadas?
Hay pantallas en:
84918.ttys002.ros-mbp (Detached) 84944.ttys008.ros-mbp (Detached) 84970.ttys013.ros-mbp (Attached) 84998.ttys002.ros-mbp (Detached) 85024.ttys002.ros-mbp (Detached)
5 zócalos en /var/folders/86/062qtcyx2rxbnmn8mtpkyghs0r0r_z/T/.screen.
Incluye esta función en tu .bash_profile:
killd () {
for session in $(screen -ls | grep -o ''[0-9]/{4/}'')
do
screen -S "${session}" -X quit;
done
}
Para ejecutarlo, llama a killd
. Esto matará todas las sesiones de pantalla, separadas o no.
Si las pantallas están muertas, use:
screen -wipe
screen -ls | grep pts | cut -d. -f1 | awk ''{print $1}'' | xargs kill
Elimina solo sesiones de pantalla separadas (crédito @schatten):
screen -ls | grep Detached | cut -d. -f1 | awk ''{print $1}'' | xargs kill
''[0-9]/{3,/}''
en caso de
There is a screen on:
20505.blabla (03/05/2014 22:16:25) (Detached)
1 Socket in /var/run/screen/S-blabla.
coincidirá tanto con 20505 como con 2014, donde el año 2014 dejará de funcionar "No se encontró sesión de pantalla".
[0-9]/{3,/}/./S*
Podría funcionar.
Siempre me he encontrado con el patrón 20505. name , donde el nombre es el nombre de host o el nombre de sesión si la pantalla se inició con el indicador -S. Funciona en OS X y Debian, puede que no sea universal.