如何终止 SIGPIPE 上的进程?

How to terminate a process on SIGPIPE?

我有一个使用 IPv4 的服务器程序。 服务端要处理客户端的多次调用,所以每次接受客户端socket连接都会创建一个child进程来处理客户端。

child 进程应该从客户端读取,然后写入客户端套接字。如果它收到一个 SIGPIPE(来自一个在写入前关闭的坏客户端),它应该在 child 的工作完成时终止。我是显式声明信号处理程序还是 SIGPIPE 默认终止它?我是初学者,如有不明请见谅

来自man 7 signal

The entries in the "Action" column of the table below specify the default
disposition for each signal, as follows:

    Term   Default action is to terminate the process.
    [...]

然后,稍后在 table:

Signal      Standard   Action   Comment
────────────────────────────────────────────────────────────────────────
[...]
SIGPIPE      P1990      Term    Broken pipe: write to pipe with no
                                readers; see pipe(7)

因此您无需执行任何操作,默认信号处理程序将终止进程。