Exécuter des commandes Shell de manière asynchrone avec shell_exec
L'exécution de tâches fastidieuses en arrière-plan est cruciale dans les applications Web. Par exemple, la demande d'un utilisateur peut déclencher un processus informatique intensif qui ne doit pas bloquer l'interaction de l'utilisateur. Bien que la fonction PHP shell_exec soit un moyen pratique d'exécuter des commandes shell, elle nécessite que le script attende que la commande soit terminée, ce qui peut nuire à l'expérience utilisateur.
Pour remédier à cela, une modification de l'appel shell_exec peut être apportée. . En ajoutant "> /dev/null 2>/dev/null &" à la commande, il est possible d'exécuter la commande sans attendre son achèvement.
L'exemple suivant illustre cette technique :
shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');
Notez que cette modification supprime également les flux de sortie standard et d'erreur standard de la commande. Si la capture du résultat est souhaitée, des techniques alternatives telles que l'utilisation de blocs de contrôle de processus (PCB) ou la mise en œuvre d'un processus démon peuvent être envisagées.
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!