Bonjour, j'ai un problème que je n'arrive pas à résoudre....
Je teste actuellement un script php qui doit lancer un téléchargement en arrière plan en utilisant wget (sous windows).
Pour résumer je lance (pour tester, openoffice est suffisament gros pour voir évoluer mon script
):
C:\wget\bin\wget.exe "http://download.services.openoffice.org/files/localized/fr/3.2.1/OOo_3.2.1_Win_x86_install-wJRE_fr.exe" --continue --tries="10" --random-wait --waitretry="10" --background -P "c:/wamp/www/wgettests/downloads/"
Lorsque que je teste cette commande dans une console, le téléchargement débute, wget me donne le PID et rend la main.
Maintenant sous php je lance la commande suivante:
exec("{$command}", $output);
où $command correspond à la commande donnée au dessus. je veux récupérer le PID avec $output.
Le téléchargement se lance bien (je vois le fichier apparaitre et "grandir" dans le répertoire de destination), mais php ne me rend pas la main, le script tourne en rond sans executer ce qu'il ya derrière le exec...
Si, en console, je tue le processus wget.exe lancé grâce au script, l'exécution du script php reprend...
J'ai essayé de rediriger la sortie vers un fichier en mettant un "> stat.file" à la fin de ma commande, comme suggéré par la documentation php pour que la commande exec puisse rendre la main lorque qu'on lance une application en arrière plan, mais ce ne fonctionne pas mieux ....
Quelqu'un saurait il pourquoi ma commande exec ne rend pas la main alors que ca fonctionne impec en console ??
Je remercie d'avance toute personne qui pourra m'éclairer sur ce problème...
Partager