代码
<?php
pcntl_async_signals(true);
pcntl_signal(SIGHUP, function(){
echo '1';
});
pcntl_signal(SIGINT, function(){
echo '2';
});
pcntl_signal(SIGQUIT, function(){
echo '3';
});
pcntl_signal(SIGILL, function(){
echo '4';
});
pcntl_signal(SIGTRAP, function(){
echo '5';
});
pcntl_signal(SIGABRT, function(){
echo '6 abrt';
});
pcntl_signal(SIGIOT, function(){
echo '6 iot';
});
pcntl_signal(SIGBUS, function(){
echo '7';
});
pcntl_signal(SIGFPE, function(){
echo '8';
});
pcntl_signal(SIGKILL, function(){
echo '9';
});
pcntl_signal(SIGUSR1, function(){
echo '10';
});
pcntl_signal(SIGSEGV, function(){
echo '11';
});
pcntl_signal(SIGUSR2, function(){
echo '12';
});
pcntl_signal(SIGPIPE, function(){
echo '13';
});
pcntl_signal(SIGALRM, function(){
echo '14';
});
pcntl_signal(SIGTERM, function(){
echo '15';
});
pcntl_signal(SIGSTKFLT, function(){
echo '16';
});
pcntl_signal(SIGCHLD, function(){
echo '17';
});
pcntl_signal(SIGCONT, function(){
echo '18';
});
pcntl_signal(SIGSTOP, function(){
echo '19';
});
pcntl_signal(SIGTSTP, function(){
echo '20';
});
pcntl_signal(SIGTTIN, function(){
echo '21';
});
pcntl_signal(SIGTTOU, function(){
echo '22';
});
pcntl_signal(SIGURG, function(){
echo '23';
});
pcntl_signal(SIGXCPU, function(){
echo '24';
});
pcntl_signal(SIGXFSZ, function(){
echo '25';
});
pcntl_signal(SIGVTALRM, function(){
echo '26';
});
pcntl_signal(SIGPROF, function(){
echo '27';
});
pcntl_signal(SIGWINCH, function(){
echo '28';
});
pcntl_signal(SIGIO, function(){
echo '29 sigio';
});
pcntl_signal(SIGPOLL, function(){
echo '29 poll';
});
pcntl_signal(SIGPWR, function(){
echo '30';
});
pcntl_signal(SIGSYS, function(){
echo '31 sys';
});
pcntl_signal(SIGUNUSED, function(){
echo '31 unused';
});
pcntl_signal(SIGRTMIN, function(){
echo '32';
});
pcntl_signal(SIGRTMAX, function(){
echo '_NSTG';
});
while(1);
运行
[weihaoyu@iZ23u681ae1Z ~]$ php signal.php
PHP Fatal error: Error installing signal handler for 9 in /home/weihaoyu/signal.php on line 43
注释掉注册SIGKILL
[weihaoyu@iZ23u681ae1Z ~]$ php signal.php
PHP Fatal error: Error installing signal handler for 19 in /home/weihaoyu/signal.php on line 82
[weihaoyu@iZ23u681ae1Z ~]$ fg
注释掉注册SIGSTOP
运行成功
结论
SIGKILL 9
SIGSTOP 19
PHP中不支持为9和19两个信号注册处理器
用途举例
sigalrm信号控制消费者消费超时:https://blog.csdn.net/why444216978/article/details/102614361