ホームページ > バックエンド開発 > PHPチュートリアル > PHP での信号処理の小さな例を共有します。

PHP での信号処理の小さな例を共有します。

藏色散人
リリース: 2023-04-10 20:00:01
転載
4261 人が閲覧しました

よく使用されるシグナル

  • kill sigterm sigkill【kill コマンド】

  • ctrl c sigint [キーボードで発行]

  • reload sinhub [通常は端末から発行]

  • ctrl z sigstop [キーボードで発行] ]

  • Timer sigalarm [プロセスに設定できるタイミング時間は 1 つだけです。それ以上は新しい値によって上書きされます]

sigkill と sinstop が実行されています信号処理を無視できない場合 (信号処理は無視でき、デフォルトでユーザー指定の処理が実行されます)

php signal small example

<?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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート