PHP多进程(3)信号
上一节:PHP多进程(2)孤儿进程与僵尸进程,说到pcntl_wait()
和pcntl_waitpid()
,是为了解决僵尸进程
问题,但最后看起来还是有一些遗留问题,而且上j节文章的结尾也给了解决方案:信号
。
信号是一种软件中断,也是一种非常典型的异步事件处理方式。在 *nix 系统诞生的混沌之初,信号的定义是比较混乱的,而且最关键是不可靠,这是一个很严重的问题。所以在后来的POSIX标准中,对信号做了标准化同时也各个发行版的 *nix 也都提供大量可靠的信号。每种信号都有自己的名字,大概如
SIGTERM
、SIGHUP
、SIGCHLD
等等,在 *nix 中,这些信号本质上都是整形数字(可以参观一下signal.h系列头文件)。