การย้ายหน้าต่างระหว่างเซสชันของหน้าจอ GNU


11

มีวิธีย้ายหน้าต่างระหว่างเซสชันต่าง ๆ ของหน้าจอหรือไม่

ตัวอย่างเช่นสมมติว่าฉันมีสถานการณ์นี้:

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

มีวิธีใดบ้างที่จะย้ายเชลล์ที่มีเซสชัน vim ของฉันจาก screen1 ไปยัง screen2?


1
ฉันไม่คิดอย่างนั้น แต่ฉันไม่ได้เป็นกูรูหน้าจอมากนัก คำถามที่น่าสนใจ +1
ต้มตุ๋น quixote

2
พบการสนทนาในรายการส่งเมลทางหน้าจอ - lists.gnu.org/archive/html/screen-users/2008-04/msg00009.html - ไม่สามารถทำได้ในขณะนี้และ 'ฝันร้าย' ที่จะนำไปใช้อย่างชัดเจน
William Casarin

คำตอบ:


4

คุณสามารถใช้ injcode เพื่อย้ายกระบวนการระหว่าง ttys ในการย้ายกระบวนการโดยใช้ PID ในหน้าต่างหน้าจอเป้าหมาย:

$ injcode -m retty PID

อย่างไรก็ตามเมื่อคุณปิดเซสชันหน้าจอหลักกระบวนการที่ย้ายจะหยุดลงเช่นกัน

แก้ไข: ฉันผิดมันใช้งานได้ ทุกอย่างจะถูกอธิบายไว้ที่นี่ สมมติว่าคุณต้องการย้าย "htop" และมีอินสแตนซ์เดียวเท่านั้นที่ทำงาน:

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

จากนั้นกับชนิดของเชลล์ก่อนหน้า:

$ disown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.