Maison > développement back-end > tutoriel php > Explication détaillée des exemples de démonisation de programmes PHP

Explication détaillée des exemples de démonisation de programmes PHP

小云云
Libérer: 2023-03-21 21:52:02
original
1181 Les gens l'ont consulté

Généralement, les programmes serveur s'exécutent en arrière-plan du système, ce qui est très différent des programmes de ligne de commande interactifs ordinaires. Il existe un démon de fonction dans la glibc. L'appel de cette fonction peut amener le processus actuel à quitter le terminal et à devenir un processus démon. Pour plus de détails, voir man daemon. Il n'existe actuellement aucune fonction de ce type en PHP. Bien sûr, si vous êtes intéressé, vous pouvez écrire une fonction d'extension PHP pour l'implémenter.

Il existe deux façons d'implémenter la démonisation des programmes en ligne de commande PHP :

1 Utilisez nohup

nohup php myprog.php > log.txt &
Copier après la connexion

La démonisation est implémentée ici.

Exécutez php myprog.php seul. Lorsque vous appuyez sur ctrl+c, l'exécution du programme sera interrompue et le processus en cours et les processus enfants seront tués.

php myprog.php &, bien que le programme d'exécution s'exécute également en arrière-plan, cela dépend en réalité du terminal. Lorsque l'utilisateur quitte le terminal, le processus sera arrêté.

2. Utilisez le code PHP pour implémenter

function daemonize()
{$pid = pcntl_fork();if ($pid == -1)
{die("fork(1) failed!\n");
}elseif ($pid > 0)
{//让由用户启动的进程退出exit(0);
}//建立一个有别于终端的新session以脱离终端posix_setsid();$pid = pcntl_fork();if ($pid == -1)
{die("fork(2) failed!\n");
}elseif ($pid > 0)
{//父进程退出, 剩下子进程成为最终的独立进程exit(0);
}
}daemonize();sleep(1000);
Copier après la connexion

Utilisez le code ci-dessus pour implémenter la démonisation Lorsque votre programme PHP doit s'exécuter en arrière-plan, vous n'avez besoin de l'appeler qu'une seule fois pour l'encapsuler. la fonction daemonize() peut être utilisée.
Remarque : il n'y a pas de redirection des entrées et sorties standard ici.

Recommandations associées :

Démonisation des programmes 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:
source:php.cn
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