Maison >développement back-end >tutoriel php >Comment exécuter des commandes Shell simultanément en PHP sans blocage ?
Exécution simultanée de commandes Shell sans blocage
De nombreuses applications nécessitent l'exécution de tâches gourmandes en calcul en arrière-plan, en particulier lors de la gestion des interactions utilisateur. En PHP, la fonction shell_exec est couramment utilisée à cet effet. Cependant, cela peut être problématique lorsque la tâche prend beaucoup de temps, car elle bloque le flux d’exécution du script PHP. Existe-t-il un moyen d'exécuter une commande shell sans attendre qu'elle se termine ?
Exécution simultanée avec redirection
Oui, il est possible d'exécuter une commande shell simultanément sans bloquer le script PHP. Ceci peut être réalisé en redirigeant les flux de sortie et d'erreur de la commande vers null. Voici comment procéder :
shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2> /dev/null &');
Le symbole & à la fin de la commande indique au shell d'exécuter la commande en arrière-plan. Le > /dev/null et 2> Les redirections /dev/null suppriment les flux de sortie standard et d'erreur standard, réduisant ainsi au silence toute sortie de la commande.
Avantages de l'exécution simultanée
L'exécution simultanée de commandes offre plusieurs avantages :
Remarque : La redirection des flux stdout et stderr vers /dev/null signifie que vous ne pourrez accéder à aucune sortie ou messages d'erreur de la commande. Si vous avez besoin de les capturer, utilisez des méthodes alternatives telles que la surveillance des canalisations ou des processus.
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!