我们常用的信号
kill sigterm sigkill【kill命令】
ctrl+c sigint【键盘发出】
reload sinhub【一般从终端发出】
ctrl+z sigstop 【键盘发出】
-
定时器 sigalarm【一个进程只能有一个定时时间,多的会被新值覆盖】
立即学习“PHP免费学习笔记(深入)”;
51shop 网上商城系统查看详情51shop 由 PHP 语言开发, 使用快速的 MySQL 数据库保存数据 ,为中小型网站实现网上电子商务提供一个完美的解决方案.一、用户模块1. 用户注册:用户信息包括:用户ID、用户名、用户密码、性别、邮箱、省份、城市、 联系电话等信息,用户注册后不能立即使用,需由管理员激活账号,才可使用(此功能管理员可设置)2. 登录功能3. 资料修改:用户可修改除账号以后的所有资料4. 忘记密码:要求用
0
sigkill和sinstop 在进行信号处理时,不能被忽略,(处理信号可以有忽略,执行默认 执行用户指定处理)
php信号小例子
<?php
function sighandler($signo){
echo 'just for sigint',"\n";
}
function sighandler2($signo){
echo 'just for sigquit',"\n";
}
declare(ticks=1);
pcntl_signal(SIGINT,"sighandler");
pcntl_signal(SIGQUIT,"sighandler2");
for($i=1;$i<30;$i++){
file_put_contents('/home/tbtest/out.txt',"$i"."秒\n");
sleep(1);
}登录后复制
~
执行结果
root@lyh:/home/tbtest# php sigint.php ^Cjust for sigint ^Cjust for sigint ^Cjust for sigint just for sigquit ^Cjust for sigint ^Cjust for sigint ^Z [1]+ Stopped php sigint.php root@lyh:/home/tbtest# bg [1]+ php sigint.php & root@lyh:/home/tbtest# fg php sigint.php root@lyh:/home/tbtest# cat out.txt 29秒 root@lyh:/home/tbtest#
登录后复制
关于捕捉sigquit
上面捕捉到了jsut for sigquit 是因为我另外起了一个终端,
root@lyh:~# ps -aux |grep php root 16385 0.5 1.9 377720 19468 pts/2 S+ 15:09 0:00 php sigint.php root 16390 0.0 0.0 11744 932 pts/0 S+ 15:09 0:00 grep --color=auto php root@lyh:~# kill -s sigquit 16385
登录后复制
ps:pcntl_signal_dispatch 比ticks效率会更高

