Maison  >  Article  >  développement back-end  >  Comment exécuter un shell en php sans attendre de réponse

Comment exécuter un shell en php sans attendre de réponse

藏色散人
藏色散人original
2021-07-01 09:37:582371parcourir

php pour exécuter le shell sans attendre de réponse : ouvrez d'abord l'arrière-plan correspondant puis implémentez-le via la méthode "system("nohup ./test.py $s &");"

Comment exécuter un shell en php sans attendre de réponse

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Comment exécuter un shell sans attendre un réponse?

php utilise le système pour exécuter la commande en arrière-plan sans attendre le résultat.

system("nohup ./test.py $s &");

Cela ne fonctionnera pas en arrière-plan et php se bloquera jusqu'à la fin de test.py.

system("nohup ./test.py $s >>log.txt &");

Écrivez de cette façon pour s'exécuter en arrière-plan. Étant donné que la fonction système démarre un programme et souhaite le maintenir en arrière-plan,

doit s'assurer que la sortie du programme est redirigée vers. un fichier ou un autre flux de sortie, sinon PHP se bloquera avant la fin de l'exécution du programme.

Par exemple :

1. system("nohup ./test.py $s >>/tmp/output.txt &");

2. system (« nohup ./test.py $s > /dev/null 2>&1 & »);

(2>&1 est la sortie d'erreur envoyée à la sortie standard. Si vous souhaitez lire le sortie d'erreur, ajoutez 2>&1 , aucune erreur ne peut être lue sans ajout)

ou system("nohup ./test.py $s > /dev/null &");

Apprentissage recommandé : "Tutoriel vidéo PHP

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!

Déclaration:
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