tutorial comandos linux kill gnu-screen

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.

  1. 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.

  2. Apégate a la sesión de pantalla separada

    screen -r 20751.Melvin_Peter_V42

  3. 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:

  1. cd /tmp/uscreens/S-xxx

  2. ls

  3. 26727.pts-0.devxxx

  4. rm 26727.pts-0.devxxx

  5. 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 .