0%

信号 SIGPIPE 忽略的原因

系统遇到 SIGPIPE 相关问题导致死机,记录原因及解决方法

SIGPIPE 信号

对一个 对端已经关闭的 socket 调用两次 write,第二次将会生成 SIGPIPE 信号,而该信号默认结束进程

解决办法

为了避免进程退出,可以 捕获 SIGPIPE 信号,或者 忽略它

signal(SIGPIPE,SIG_IGN);

或者在捕获函数中处理

Ref

  1. socket 编程—— 服务器遇到 Broken Pipe 崩溃