Déplacement de fenêtres entre des sessions d'écran GNU

11

Existe-t-il un moyen de déplacer des fenêtres entre différentes sessions d'écran?

Par exemple, disons que j'ai ce scénario:

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

Existe-t-il un moyen de déplacer mon shell contenant ma session vim de screen1 à screen2?

William Casarin
la source
1
je ne pense pas, mais je ne suis pas vraiment un gourou de l' écran . question intéressante, +1.
Quack Quichotte
2
a trouvé une discussion sur la liste de diffusion d'écran - lists.gnu.org/archive/html/screen-users/2008-04/msg00009.html - ce n'est pas possible pour le moment et un «cauchemar» à mettre en œuvre apparemment.
William Casarin

Réponses:

4

Vous pouvez utiliser injcode pour déplacer un processus entre ttys. Pour déplacer le processus avec l'exécution du PID dans la fenêtre de l'écran cible:

$ injcode -m retty PID

Cependant, lorsque vous fermez la session d'écran parent, les processus déplacés se terminent également.

Edit: j'avais tort, ça marche. Tout est décrit ici . Supposons que vous souhaitiez déplacer "htop" et qu'une seule instance soit en cours d'exécution:

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

puis sur le type de shell précédent:

$ disown
askonecki
la source