linux - comandos - Matar sesión de pantalla separada
screen linux comandos (11)
Aprendí de un lugar donde una pantalla separada puede ser asesinada por
pantalla -X -S [sesión # que quieres matar] matar
donde [sesión # que quieres matar] se puede obtener de
pantalla -ls.
Pero esto no funciona. ¿Nada malo? ¿Cuál es la forma correcta?
"matar" solo matará una ventana de pantalla. Para "matar" la sesión completa, usa quit
.
Ejemplo
$ screen -X -S [session # you want to kill] quit
Alternativamente, mientras está en su sesión de pantalla, todo lo que tiene que hacer es escribir salir
Esto eliminará la sesión de shell iniciada por la pantalla, que termina de manera efectiva la sesión de pantalla en la que se encuentra.
No hay necesidad de molestarse con ID de sesión de pantalla, etc.
Es más fácil matar una sesión, cuando se da algún nombre significativo:
//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
Para eliminar todas las sesiones de la pantalla separada, incluya esta función en su .bash_profile:
killd () {
for session in $(screen -ls | grep -o ''[0-9]/{5/}'')
do
screen -S "${session}" -X quit;
done
}
para ejecutarlo, llama killd
Para mi un simple
exit
trabajos. Esto es desde dentro de la sesión de pantalla.
Puede matar una sesión separada que no responde dentro de la sesión de pantalla haciendo lo siguiente.
Escriba
screen -list
para identificar la sesión de pantalla separada.~$ screen -list There are screens on: 20751.Melvin_Peter_V42 (Detached)
Nota:
20751.Melvin_Peter_V42
es su ID de sesión.Apégate a la sesión de pantalla separada
screen -r 20751.Melvin_Peter_V42
Una vez conectado a la sesión, presione Ctrl + A y luego escriba
:quit
Simplemente puede ir al lugar donde se aloja la sesión de pantalla y ejecutar:
screen -ls
lo que resulta en
There is a screen on:
26727.pts-0.devxxx (Attached)
1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.
Y sólo quítalo:
cd /tmp/uscreens/S-xxx
ls
26727.pts-0.devxxx
rm 26727.pts-0.devxxx
ls
El directorio uscreens
ya no tendrá el archivo 26727.pts-0.devxxx
. Ahora para asegurarse de que simplemente escriba esto:
screen -ls
y usted debe obtener:
No se encontraron sockets en / tmp / uscreens / S-xxx.
agrega esto a tu ~/.bashrc
:
alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk ''{print $1}''| xargs -I{} screen -S {} -X quit"
A continuación, utilice la cleanscreen
limpia para limpiar todas las sesiones de pantalla.
Listar pantallas:
screen -list
Salida:
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.
Matar sesión de pantalla:
screen -S 23536 -X quit
== 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.
screen -wipe
Debe limpiar todas las sesiones de pantalla muerta .