【发布时间】:2019-03-05 21:50:08
【问题描述】:
我们知道,当 ssh 连接消失时,bash 会收到一个 SIGHUP,并将这个信号转发给它的所有子节点。
我想知道这个 SIGHUP 的原始发送者是谁,是 ssh 客户端、ssh 服务器、操作系统还是其他什么?
我看了openssh-portabal的代码,发现只有这里使用了SIGHUP:https://github.com/openssh/openssh-portable/blob/master/sshconnect.c#L285
调用者似乎是客户端: https://github.com/openssh/openssh-portable/blob/master/ssh.c#L1533
我在服务器端 sshd.c 中没有找到任何发件人代码
这是否意味着发件人是客户?在这种情况下,如果连接中断,服务器将不会收到 SIGHUP。我不太确定这一点,但根据我的经验,这似乎不是真的。
所以我很好奇谁应该是原始发件人。这个有标准吗?
【问题讨论】:
-
我还检查了 RFC tools.ietf.org/html/rfc4254#page-13,没有与 SIGHUP 相关的描述
标签: linux ssh linux-kernel tty pty