>  기사  >  백엔드 개발  >  PHP에서 신호 처리의 작은 예를 공유하세요.

PHP에서 신호 처리의 작은 예를 공유하세요.

藏色散人
藏色散人앞으로
2021-11-26 15:32:264220검색

일반적으로 사용되는 신호

  • kill sigterm sigkill【kill 명령】

  • ctrl+c sigint【키보드 문제】

  • reload sinhub【일반적으로 터미널에서 실행됨】

  • ctrl+z sigstop [키보드 발행]

  • Timer sigalarm [프로세스에는 타이머가 하나만 있을 수 있으며, 그 이상은 새 값으로 덮어쓰게 됩니다.]

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 캡처 정보

Sigquit에 대한 jsut는 위에서 캡처되었습니다. 별도로 시작했습니다. 터미널을 구입하세요.

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가 틱보다 효율적입니다

권장 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 신호 처리의 작은 예를 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제