(PHP 4 >= 4.1.0, PHP 5, PHP 7)
pcntl_signal — 锟斤拷装一锟斤拷锟脚号达拷锟斤拷锟斤拷
锟斤拷锟斤拷pcntl_signal()为signo
指锟斤拷锟斤拷锟脚号帮拷装一锟斤拷锟斤拷
锟斤拷锟脚号达拷锟斤拷锟斤拷锟斤拷
signo
锟脚号憋拷拧锟�
handler
锟脚号达拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫伙拷锟斤拷锟斤拷锟侥猴拷锟斤拷锟津方凤拷锟斤拷锟斤拷锟街o拷也锟斤拷锟斤拷锟斤拷系统锟斤拷锟斤拷
SIG_IGN
锟斤拷锟斤拷注锟斤拷锟斤拷锟斤拷锟脚号达拷锟斤拷锟斤拷颍┗锟�SIG_DFL锟斤拷默锟斤拷锟脚号达拷锟斤拷锟斤拷锟�
.
Note:
注锟解当锟斤拷使锟斤拷一锟斤拷锟斤拷锟襟方凤拷锟斤拷时锟津,该讹拷锟斤拷锟斤拷锟斤拷眉锟斤拷锟斤拷锟斤拷锟斤拷锟绞癸拷锟斤拷锟斤拷锟斤拷锟侥憋拷为锟斤拷锟斤拷锟斤拷锟斤拷锟脚憋拷锟斤拷锟斤拷之前锟角持久达拷锟节的★拷
restart_syscalls
指锟斤拷锟斤拷锟脚号碉拷锟斤拷时系统锟斤拷锟斤拷锟斤拷锟斤拷锟角凤拷锟斤拷谩锟斤拷锟斤拷锟阶拷锟斤拷锟斤拷锟斤拷锟斤拷希锟斤拷瞬锟斤拷锟斤拷锟轿低筹拷锟斤拷帽锟斤拷藕糯锟斤拷时锟斤拷系统锟斤拷锟斤拷锟角凤拷锟� 锟斤拷始锟斤拷锟斤拷锟铰匡拷始锟斤拷锟斤拷锟斤拷锟斤拷http://bugs.php.net/bug.php?id=52121锟斤拷锟剿诧拷锟斤拷锟斤拷锟斤拷bug锟斤拷效锟斤拷锟斤拷
锟缴癸拷时锟斤拷锟斤拷 TRUE
锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE
锟斤拷
锟芥本 | 说锟斤拷 |
---|---|
4.3.0 |
锟斤拷锟接诧拷锟斤拷restart_syscalls 锟斤拷
|
4.3.0 | 锟斤拷锟襟方凤拷锟斤拷锟斤拷锟斤拷为锟截碉拷锟斤拷使锟矫★拷 |
4.3.0 | PCNTL锟斤拷锟斤拷使锟斤拷锟斤拷ticks锟斤拷为锟脚号达拷锟斤拷幕氐锟斤拷锟斤拷疲锟絫icks锟斤拷锟劫讹拷锟斤拷远远锟斤拷锟斤拷锟斤拷之前锟侥达拷锟斤拷锟斤拷啤锟� 锟斤拷锟斤拷浠拷锟�"锟矫伙拷ticks"锟斤拷循锟斤拷锟斤拷同锟斤拷锟斤拷锟藉。锟斤拷锟斤拷锟斤拷使锟斤拷declare() 锟斤拷锟斤拷诔锟斤拷锟斤拷锟街革拷锟斤拷锟斤拷锟斤拷锟斤拷氐锟斤拷锟轿伙拷谩锟斤拷锟绞癸拷锟斤拷锟斤拷嵌锟斤拷觳斤拷录锟斤拷锟斤拷锟侥匡拷锟斤拷锟斤拷小锟斤拷锟斤拷锟节憋拷锟斤拷PHP时 锟斤拷锟斤拷pcntl锟斤拷始锟秸承碉拷锟斤拷锟街匡拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥脚憋拷锟斤拷锟角凤拷锟斤拷锟斤拷使锟斤拷锟斤拷pcntl锟斤拷 PHP 4.3.0使锟斤拷ticks锟斤拷为锟脚号达拷锟斤拷氐锟斤拷锟斤拷疲锟斤拷锟斤拷锟斤拷前锟侥伙拷锟狡匡拷锟剿很多。锟斤拷锟斤拷浠拷锟� "锟矫伙拷ticks" 锟斤拷循锟斤拷锟斤拷同锟斤拷锟斤拷锟藉。锟斤拷锟斤拷锟斤拷使锟斤拷declare() 锟斤拷锟斤拷诔锟斤拷锟斤拷锟街革拷锟斤拷锟斤拷锟斤拷锟斤拷氐锟斤拷锟轿伙拷谩锟� |
Example #1 pcntl_signal()示锟斤拷
<?php
//使锟斤拷ticks锟斤拷要PHP 4.3.0锟斤拷锟较版本
declare(ticks = 1);
//锟脚号达拷锟斤拷锟斤拷
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// 锟斤拷锟斤拷SIGTERM锟脚猴拷
exit;
break;
case SIGHUP:
//锟斤拷锟斤拷SIGHUP锟脚猴拷
break;
case SIGUSR1:
echo "Caught SIGUSR1...\n";
break;
default:
// 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟脚猴拷
}
}
echo "Installing signal handler...\n";
//锟斤拷装锟脚号达拷锟斤拷锟斤拷
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// 锟斤拷锟斤拷锟斤拷PHP 4.3.0锟斤拷锟较版本锟斤拷锟斤拷使锟矫讹拷锟襟方凤拷
// pcntl_signal(SIGUSR1, array($obj, "do_something");
echo "Generating signal SIGTERM to self...\n";
//锟斤拷前锟斤拷锟教凤拷锟斤拷SIGUSR1锟脚猴拷
posix_kill(posix_getpid(), SIGUSR1);
echo "Done\n"
?>