Linux程序接收到sigpipe信号崩溃处理

针对 SIGPIPE 导致 server 进程崩溃的问题:

原因分析: 在 Linux 网络编程中,当向一个已关闭的 socket 发送数据时,内核会向进程发送 SIGPIPE 信号。

该信号的默认行为是终止进程。当您刷新 Web 界面时,旧的 WebSocket 连接可能被意外关闭,如果此时服务器刚好尝试向其发送数据,就会触发此信号导致崩溃。

修复方案:

在代码中添加了对 SIGPIPE 信号的忽略处理。这样当连接断开时, send 函数会返回错误(errno 为 EPIPE),而不是直接让进程崩溃,从而允许程序正常处理错误并继续运行。

复制代码
 /* 忽略 SIGPIPE,防止客户端断开连接导致进程崩溃 */
    signal(SIGPIPE, SIG_IGN);
相关推荐
BestOrNothing_201517 小时前
(2)联想拯救者安装 Ubuntu 双系统前的 BIOS 设置全过程
linux·bios·拯救者·ubuntu22.04·联想lenovo
23.17 小时前
【Linux】grep命令终极指南
linux
巨斧空间掌门17 小时前
JDK17 下载 windows Linux
linux·运维·服务器
AI+程序员在路上18 小时前
CANopen 协议:介绍、调试命令与应用
linux·c语言·开发语言·网络
learndiary18 小时前
2026.03.12~2026.03.19制作的共7个视频及简介
linux·视频·学习日记小店
JiMoKuangXiangQu18 小时前
Linux:ARM64 中断处理简析
linux·arm64 中断
小生不才yz19 小时前
【Makefile 专家之路 | 函数篇】11. 终极奥义:eval 函数——动态生成规则的“核武器”
linux
皮卡蛋炒饭.19 小时前
进程得控制
linux·运维·服务器
YMWM_19 小时前
Install pyrealsense2 on the jetson thor
linux·realsense2
BestOrNothing_201520 小时前
(3)Ubuntu 22.04 双系统安装全过程记录
linux·ubuntu22.04·双系统安装