8、PHP 原生魅力 - 系统功能 - 信号监听
操作系统可以通过信号
与正在运行中的进程
通信。操作系统使用信号来告诉进程一些信息,如“我想停止你的执行”。如用户想要停止进行的执行,可以使用 shell 命令 kill
或者 CTRL + C
来告诉操作系统向目标进行发送一个信号。
在 PHP 脚本中,如果想检测脚本什么时候收到信号,可以使用pcntl_signal()
函数。第一个参数是要想检查的信号,第二个参数是在脚本收到信号时执行的自定义函数。
<?php
declare(ticks = 1);
echo '正在安装信号处理程序...' . PHP_EOL;
/**
* 监听 SIGINT 信号
*
* 使用方法:
* - kill 命令
* - CTRL + C
*/
pcntl_signal(SIGINT, function ($signal) {
echo '接收到 SIGINT 信号, -' . $signal . '-' . PHP_EOL;
});
sleep(30);
echo '结束' . PHP_EOL;
运行如下:
$ php 8-signal.php
正在安装信号处理程序...
^C接收到 SIGINT 信号, -2-
结束
使用 CTRL + C
发送一个信号,结束程序运行。
请登录后再评论