SIGCHLD 是类 Unix 操作系统中的一个信号(signal),当一个进程的子进程结束、停止(stopped)或继续运行(continued)时,内核会把该信号发送给父进程,用于通知父进程进行处理(如 wait()/waitpid() 回收子进程,避免产生僵尸进程)。
/ˈsɪɡ tʃaɪld/
The parent process handles SIGCHLD to reap finished child processes.
父进程通过处理 SIGCHLD 来回收已结束的子进程。
In a server that forks workers, installing a SIGCHLD handler prevents zombie processes and lets the parent track worker exits reliably.
在一个通过 fork 创建工作进程的服务器中,安装 SIGCHLD 处理器可以防止僵尸进程,并让父进程可靠地跟踪工作进程的退出情况。
SIGCHLD 是缩写:SIG 表示 signal(信号),CHLD 来自 child(子进程/子代)。在早期 Unix 文档与头文件命名中,常用这种全大写缩写来表示不同的信号类型。
waitpid()。signal(7), wait(2), sigaction(2))——对 SIGCHLD 的语义与用法有权威定义。