Przenoszenie okien między sesjami ekranu GNU

11

Czy istnieje sposób przenoszenia okien między różnymi sesjami ekranu?

Powiedzmy na przykład, że mam ten scenariusz:

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

Czy jest jakiś sposób na przeniesienie mojej powłoki zawierającej moją sesję vima z screen1 na screen2?

William Casarin
źródło
1
nie sądzę, ale nie jestem guru od ekranów . ciekawe pytanie, +1.
quack quixote
2
znalazłem dyskusję na ekranie listy mailingowej - lists.gnu.org/archive/html/screen-users/2008-04/msg00009.html - w tej chwili nie jest możliwe i najwyraźniej „koszmar” można wdrożyć.
William Casarin

Odpowiedzi:

4

Możesz użyć injcode, aby przenieść proces między ttys. Aby przenieść proces z uruchomionym PID w oknie ekranu docelowego:

$ injcode -m retty PID

Jednak po zamknięciu nadrzędnej sesji Screen przeniesione procesy również się zakończą.

Edycja: Myliłem się, to działa. Wszystko jest opisane tutaj . Załóżmy, że chcesz przenieść „htop” i działa tylko jedna instancja:

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

następnie na poprzednim typie powłoki:

$ disown
askonecki
źródło