Maison > développement back-end > tutoriel php > Partager un petit exemple de traitement du signal en php

Partager un petit exemple de traitement du signal en php

藏色散人
Libérer: 2023-04-10 20:00:01
avant
4263 Les gens l'ont consulté

nos signaux couramment utilisés

  • kill sigterm sigkill【kill command】

  • ctrl+c sigint【problème de clavier】

  • reload sinhub【généralement émis depuis le terminal】

  • ctrl+z sigstop [émis par le clavier]

  • timer sigalarm [un processus ne peut avoir qu'un seul timer, les autres seront écrasées par de nouvelles valeurs]

sigkill et sinstop ne peuvent pas être utilisés pendant le traitement du signal. , (le traitement du signal peut être ignoré et l'exécution par défaut est le traitement spécifié par l'utilisateur)

Petit exemple de signal 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);
        }
Copier après la connexion

~

Résultats d'exécution

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#
Copier après la connexion

À propos de la capture de sigquit

Le jus pour sigquit a été capturé ci-dessus car Je l'ai démarré séparément J'ai un terminal,

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
Copier après la connexion

ps : pcntl_signal_dispatch sera plus efficace que ticks

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal