Comment créer un processus d'arrière-plan singleton en PHP

墨辰丷
Libérer: 2023-03-27 11:46:01
original
1361 Les gens l'ont consulté

Cet article présente principalement la méthode de création d'un processus d'arrière-plan unique en PHP, impliquant les techniques d'exploitation associées à PHP pour démarrer, créer, juger, arrêter et d'autres processus. Les amis dans le besoin peuvent se référer à

comme suit :

Vous pouvez démarrer un processus PHP en arrière-plan via l'instruction suivante :

$command = " php script.php ";
$pid = exec("nohup $command > /dev/null 2>&1 & echo $!");
Copier après la connexion

nohup signifie que ce processus est indépendant de l'utilisateur créé et peut être un moyen gardé de fonctionner.

Si vous avez besoin que ce processus en arrière-plan s'exécute en tant que singleton, vous pouvez utiliser la méthode suivante pour enregistrer/juger si le processus est en cours d'exécution

//query the database for process id
$query = "SELECT pid FROM `daemons` WHERE `pid` = '2013' LIMIT 1";
$result = mysql_query($query);
$pid = mysql_result($result, 0, 'pid');
//check if the process is running
exec("ps $pid", $pState);
if((count($pState) >= 2) && !empty($pid))
{
echo "RUNNING";
}
else
{
echo "INACTIVE";
}
Copier après la connexion

Vous pouvez également écrire le pid dans un fichier, mais si vous êtes dans un environnement de tâches distribuées, il est préférable de le mettre dans la base de données

Arrêter un processus en arrière-plan :

//check if the process from the database is running
exec("ps $pid", $pState);
if((count($pState) >= 2))
{
//if the process is running, kill it
exec("kill $pid");
//update database row with an empty process id
}
Copier après la connexion

Recommandations associées :

PHPInstance uniqueExplication détaillée de la façon d'utiliser le modèle

Fonction de sélection multi-bibliothèques Redis implémentée par PHPClasse à cas unique (explication détaillée)

Implémentation PHP de mongoDB Cas uniqueÉtapes de la classe de fonctionnement du mode Explication détaillée

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!