pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_signal��װһ���źŴ�����

˵��

pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls = true ] ) : bool

����pcntl_signal()Ϊsignoָ�����źŰ�װһ���� ���źŴ�������

����

signo

�źű�š�

handler

�źŴ������������û������ĺ����򷽷������֣�Ҳ������ϵͳ���� SIG_IGN����ע�������źŴ�����򣩻�SIG_DFL��Ĭ���źŴ������.

Note:

ע�⵱��ʹ��һ�����󷽷���ʱ�򣬸ö�������ü���������ʹ��������ı�Ϊ���������ű�����֮ǰ�dz־ô��ڵġ�

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��Ϊ�źŴ���Ļص����ƣ�ticks���ٶ���ԶԶ������֮ǰ�Ĵ�����ơ� ����仯��"�û�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"

?>

�μ�

  • pcntl_fork() - �ڵ�ǰ���̵�ǰλ�ò�����֧���ӽ��̣�����ע��fork�Ǵ�����һ���ӽ��̣������̺��ӽ��� ����fork��λ�ÿ�ʼ���¼���ִ�У���ͬ���Ǹ�����ִ�й����У��õ���fork����ֵΪ�ӽ��� �ţ����ӽ��̵õ�����0��
  • pcntl_waitpid() - �ȴ��򷵻�fork���ӽ���״̬