GNU 屏幕实际上是如何工作的

cst*_*fel 4 gnu-screen

因此,我一直试图找到一些关于 GNU 屏幕如何在高位实际工作的信息,而无需实际阅读源代码,但我一直无法这样做。

即使终端会话关闭,屏幕也能保持不变,它有什么作用?它是否作为守护进程或其他东西运行,并且调用 screen 的每个人都只是连接到它,然后它找到要附加到的伪 tty 会话,或者它是否执行完全不同的操作?

Chr*_*odd 6

这个问题有很多潜在的问题,所以我只集中讨论一个:

即使终端会话关闭,屏幕也能保持不变,它有什么作用?

Screen 捕获 HUP 信号,因此当其控制终端消失时它不会自动退出。相反,当它获得 HUP 时,它会进入后台模式(因为它不再连接实际终端)并等待。当您使用各种 -d/-D/-r/-R/-RR 选项启动 screen 时,它会查找已经运行的 screen 进程(可能在收到 HUP 后分离,和/或可能通过向其发送HUP)并接管该屏幕进程的子终端会话(一个协作进程,旧屏幕进程在退出之前将所有主 PTY 发送到新进程以供其管理)。