Maison > développement back-end > tutoriel php > Comment puis-je exécuter de manière asynchrone des commandes Shell en PHP sans blocage ?

Comment puis-je exécuter de manière asynchrone des commandes Shell en PHP sans blocage ?

Linda Hamilton
Libérer: 2024-12-06 14:37:12
original
739 Les gens l'ont consulté

How Can I Asynchronously Execute Shell Commands in PHP Without Blocking?

Exécution asynchrone des commandes Shell

Lorsque vous gérez des tâches gourmandes en ressources dans vos scripts PHP, il est souvent souhaitable de les exécuter en arrière-plan pour évitez de bloquer l’exécution d’un autre code. Une méthode courante pour exécuter des commandes shell est shell_exec, mais elle nécessite généralement que le script attende la fin de la commande.

Pour exécuter une commande shell sans attendre qu'elle se termine, vous pouvez utiliser une technique d'exécution en arrière-plan. Ceci est réalisé en redirigeant la sortie standard et les flux d'erreurs standard de la commande shell vers des périphériques nuls.

Considérez le code PHP suivant :

shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');
Copier après la connexion

Dans ce code, nous employons les stratégies suivantes :

  • Nous utilisons > /dev/null pour rediriger la sortie standard de la commande vers un périphérique nul, le supprimant ainsi.
  • Nous utilisons 2>/dev/null pour rediriger l'erreur standard de la commande vers un autre périphérique nul, en le supprimant à nouveau tout message d'erreur.
  • Enfin, nous ajoutons & à la fin de la commande pour l'exécuter en arrière-plan.

Cette technique vous permet de générer une commande shell de manière asynchrone, libérant ainsi votre script PHP pour continuer à s'exécuter sans attendre la fin de la commande.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal