telnet/SSH 连接中断时是否会触发 SIGHUP?

telnet/SSH 连接中断时是否会触发 SIGHUP?

我正在尝试编写一个邮件程序,其中可能包含用户不希望在 SSH/telnet 连接中断时丢失的数据。会SIGHUP被发送到进程吗?毕竟,这是“挂断”信号……

答案1

默认情况下,该进程将发送一个SIGHUP.默认信号处理程序(陷阱)将相对优雅地关闭程序,但不会节省用户的工作。

SIGHUP在您的情况下,我会让程序包含一个陷阱例程,该例程在收到a 时保存用户的工作。您可以捕获并处理除 之外的所有信号SIGKILL。您可能还想针对SIGTERM中断运行相同的例程。

还有其他机制可以用来避免获取SIGHUP信号,但处理信号是最简单和最安全的。如果其他方法失败,或者SIGHUP与命令一起发送,kill您的进程仍然会关闭而不保存工作。

相关内容