PHP不允许注册的进程信号

代码

<?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

发布了200 篇原创文章 · 获赞 26 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/why444216978/article/details/103392065
今日推荐