Mover ventanas entre sesiones de pantalla de GNU

11

¿Hay alguna manera de mover ventanas entre diferentes sesiones de pantalla?

Por ejemplo, digamos que tengo este escenario:

screen -S screen1
vim *.cpp
C-a d
screen -S screen2

¿Hay alguna forma de mover mi shell que contiene mi sesión vim de screen1 a screen2?

William Casarin
fuente
1
No lo creo, pero no soy un gran gurú de la pantalla . pregunta interesante, +1.
quack quijote
2
Encontré una discusión en la lista de correo de la pantalla - lists.gnu.org/archive/html/screen-users/2008-04/msg00009.html - no es posible en este momento y aparentemente es una 'pesadilla' implementar.
William Casarin

Respuestas:

4

Puede usar injcode para mover un proceso entre ttys. Para mover el proceso con PID ejecutado en la ventana de la pantalla de destino:

$ injcode -m retty PID

Sin embargo, cuando cierra la sesión de la pantalla principal, los procesos movidos también finalizarán.

Editar: estaba equivocado, funciona. Todo se describe aquí . Supongamos que desea mover "htop" y solo se está ejecutando una instancia:

$ injcode -m retty $(pgrep htop)
$ pkill -SIGSTOP htop
$ pkill -SIGCONT htop

luego en el tipo de shell anterior:

$ disown
askonecki
fuente