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

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

Patricia Arquette
Libérer: 2024-12-01 15:27:11
original
435 Les gens l'ont consulté

How Can I Run Shell Commands Asynchronously in PHP?

Exécuter des commandes Shell en arrière-plan avec PHP

Lors de l'exécution d'une tâche gourmande en processus, comme l'exécution d'un script shell, il est souvent souhaitable de terminer la tâche en arrière-plan. Cela permet à l'utilisateur de continuer à utiliser le site Web ou l'application sans avoir à attendre la fin de la tâche.

Utilisation de shell_exec()

La fonction shell_exec() de PHP exécute un commande shell et renvoie sa sortie. Cependant, shell_exec() nécessite que le script attende la fin de la commande avant de continuer.

Exécuter des commandes en arrière-plan

Pour exécuter une commande shell en arrière-plan sans en attendant qu'il soit terminé, utilisez le code suivant :

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

Ce code ajoute les paramètres suivants à la fin du shell_exec() commande :

  • > /dev/null 2>/dev/null : redirige la sortie standard et la sortie d'erreur de la commande vers /dev/null, les supprimant ainsi.
  • & : exécute la commande en arrière-plan, permettant au script de continuer sans en attendant la fin de la commande.

Remarque : Cette méthode ne renvoie pas le message de la commande sortie ou code d’état. Si vous avez besoin d'accéder aux résultats de la commande, envisagez d'utiliser une approche différente, par exemple en utilisant exec() avec la commande nohup ou en créant un processus dédié pour la tâche en arrière-plan.

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