php exec() arrière-plan les questions de processus
Je suis en train de traiter un fichier en arrière-plan avec la commande suivante, mais il ne fait rien.
exec("php csv.php $file $user > /dev/null &", $output);
Si je supprime > /dev/null &
ensuite le fichier de processus, mais pas dans le fond.
exec("php csv.php $file $user", $output);
Des idées?
Avez-vous essayez d'utiliser passthru ou popen? Je n'ai jamais utilisé exec, mais je suis sûr qu'il fonctionne avec deux d'entre eux.
Vous ne devriez pas s'attendre à une sortie si vous voulez qu'il fonctionne asynchrone. Aussi je voudrais faire précéder la commande exec avec un "@"
Vous ne devriez pas s'attendre à une sortie si vous voulez qu'il fonctionne asynchrone. Aussi je voudrais faire précéder la commande exec avec un "@"
OriginalL'auteur kylex | 2013-01-28
Vous devez vous connecter pour publier un commentaire.
Remarque:
Si un programme est démarré avec cette fonction, afin qu'il continue de fonctionner en arrière-plan, la sortie du programme doit être redirigée vers un fichier ou d'un autre flux de sortie. Ne pas le faire va provoquer PHP pour accrocher jusqu'à l'exécution du programme se termine.
http://php.net/manual/en/function.exec.php
donc:
Il ne devrait pas être un deuxième paramètre fourni alors.
Donc on ne peut pas s'exécuter en arrière-plan avec des paramètres supplémentaires?
Mon mauvais +1. Vous pouvez être en mesure d'utiliser proc_open avec des descripteurs.
Supprimé de la seconde entrée et pendant que le script s'arrête immédiatement, la commande ne s'exécute pas.
OriginalL'auteur Emery King
Avez-vous considéré l'utilisation de l'écran? Vous pouvez démarrer une session écran qui s'exécute dans un processus détaché. La production va aller à l'écran session, que vous pouvez rattacher à un autre terminal alors qu'il est encore en cours d'exécution.
OriginalL'auteur moodboom