当SSH连接关闭时,谁是叹气的原始发件人



如我们所知,当SSH连接消失时,bash会叹气,并将此信号转发给所有孩子。

我想知道这个叹息的原始发件人是谁,是SSH客户端,SSH服务器,OS还是其他?

我读了openssh-portabal的代码,我在这里只发现叹息:https://github.com/openssh/openssh-portable/blob/blob/master/master/sshconnect.c#l285

,呼叫者似乎是客户:https://github.com/openssh/openssh-portable/blob/master/ssh.c#l1533

我在服务器端SSHD.C

中找不到任何发件人代码

这是否意味着发送者是客户端?在这种情况下,如果连接中断,服务器将不会收到叹息。我对此不确定,但是根据我的经验,这似乎不是真的。

所以我很好奇谁应该是原始发件人。是否有标准?

连接服务器端的bash进程正在运行,其控制终端设置到伪终端对的从侧,主侧附加到sshd进程。/p>

连接终止时,sshd过程关闭了伪末端的主侧,这导致核末端驱动器悬挂在伪末端的从侧。当从属侧挂起时,内核TTY核心将SIGHUPSIGCONT信号发送给终端的会话负责人(通常是bash进程)和会话负责人的过程组中的每个进程。

这不是针对伪末端和SSH的特定特定的 - 如果您通过连接到串行端口的调制解调器拨入服务器,并且调制解调器挂起(这是"挂断"/SIGHUP命名为)。如您所知,这是长期以来的历史行为。

相关内容

  • 没有找到相关文章

最新更新