Temps execution (exec)

Eléphanteau du PHP | 21 Messages

09 août 2007, 09:47

Salut @ tous.
Je suis en train de faire un script en php qui me permet de lancer des commandes java via la commande "exec".
Mon soucis est que quand j'execute ce script, il s'arrete au bout d'un moment.

Voila mon code :
exec("cloture.bat"); // on exécute ce fichier bat
Et voila ce que contient mon bat
java WinEtiq
java HistoColis
java HillsEdi
java HillsPdf
java EdiHills
On m'a dit qu'il y a un temps d'execution pour la commande exec, mes questions sont :
1)comment augmenter ce temps ou le rendre illimité ?
2)ce probleme existe-t-il sous un serveur linux?

Et une dernier question qui n'a rien avoir avec le temps d'execution :
3)Comment executer un sript shell (.sh) en php sous linux (j'utilise la commande "shell_exec) mais ca ne marche pas)?

Merci d'avance.
Je m'apelle BRICE, je viens de NICE, j'suis surfeur winner ascendant snowboarder et j'porte des slips de Gerard Klein

ViPHP
ViPHP | 2287 Messages

09 août 2007, 10:44

Bonjour,
1)comment augmenter ce temps ou le rendre illimité ?
set_time_limit(0); // illimité
set_time_limit(600); // pour une limite de dix minutes (10*60s)
2)ce probleme existe-t-il sous un serveur linux?
Absolument. Ce n'est pas un problème mais une garantie qu'en cas de bug, ou de boucle infinie, ton script finisse par s'arrêter quand même.
3)Comment executer un sript shell (.sh) en php sous linux (j'utilise la commande "shell_exec) mais ca ne marche pas)?
shell_exec()
exec()
system()

Ou encore les backticks, équivalents du shell_exec si je ne m'abuse.
echo `ls -al`;
shell_exec() marche très bien, tout dépend en fait de ce que tu appelles "marcher" :wink: Sois plus précis sur ton problème, ses symptômes et le comportement normal de la commande que tu veux éxécuter.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 août 2007, 10:45

Il n'y a pas à ma connaissance de limite de temps sur la fonction exec() en revanche, il y en a une sur l'exécution d'un script php. Définie par défaut à 30 secondes, elle est modifiable globalement dans le php.ini ou localement avec la fonction set_time_limit() :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 21 Messages

09 août 2007, 11:08

J'ai deja un "set_time_limit(0)" sur ma page, c'est pour ca que j'en ai conclue que le probleme ne venait pas de l'execution de la page mais plutot du script.

L'arret du script est aleatoire. La premiere fois, le bat a été executer entierement, mais les fois d'apres il s'arrete quand il en a envie.

Le probleme ne viens pas de mes prog en java, car vue que le script ne marche pas de masses, j'execute ces commandes a la main en passant par l'invite de commande et elle fonctionne tres bien.

En ce qui concerne "shell_exec", pour le moment je veux simplement creer un dossier.
Voila mon code:
$commande="./cloture"; //(le nom du script est cloture.sh)
shell_exec($commande);
Voila la commande du script:

Code : Tout sélectionner

mkdir ./bobo/
Mais cela ne creer aucun dossier.
Je m'apelle BRICE, je viens de NICE, j'suis surfeur winner ascendant snowboarder et j'porte des slips de Gerard Klein

ViPHP
ViPHP | 2287 Messages

09 août 2007, 11:17

Voila la commande du script:

Code : Tout sélectionner

mkdir ./bobo/
Mais cela ne creer aucun dossier.
Vérifie les permissions (permission pour l'utilisateur/groupe sous lequel tourne php (donc du serveur web si c'est ton cas) d'éxécuter le script, permission d'écriture dans ./ ...). Fais aussi attention au répertoire courant, le ./ n'est peut-être pas celui que tu crois (va voir pour cela getcwd() ).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 21 Messages

09 août 2007, 13:49

Fais aussi attention au répertoire courant, le ./ n'est peut-être pas celui que tu crois (va voir pour cela getcwd() ).
Merci c'etait bien une question de repertoire, pour le reglé, j'ai mis l'@ complete.



Sinon, en ce qui concerne mon probleme de temps d'execution du script par la commande exec, quelqu'un a-t-il une idée?????
Je m'apelle BRICE, je viens de NICE, j'suis surfeur winner ascendant snowboarder et j'porte des slips de Gerard Klein