Bonjour à tous,
j'espere poster dans la bonne section.
voici mon problème :
(config : xampp 1.7.3 windows xp)
j'utilise la fonction system() de php pour lancer le programme imagemagick qui va créer des images que j'affiche ensuite.
problème : l'utilisateur se débrouille (par un refresh ou pendant l'affichage de l'image) pour cliquer sur un autre bouton du menu, et là c'est le drame :
apache plante car il attend la fin de l'exécution de la commande système (qui n'arrivera jamais), même pas au timeout de php.ini.
résultat : il faut fermer le navigateur web puis quand on relance le menu avec imagemagick ne marche plus. (le reste marche à nouveau).
j'ai bien lu ce maudit commentaire dans la doc php :
mais comment l'interpréter ?Note: Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.
ma ligne de commande ressemble à cela :
system(convert -size 800x660 xc:none -draw "fill green circle 660,294 660,303 font-size 10 fill white text 655,298 '49'" image/123.png);
mon programme est donc bien redirigé vers un fichier.
ps : à noter que dans le gestionnaire des tâches, la commande cmd.exe reste présente --> elle correspond à la commande system().
j'ai fait le test sous windows 2003, là c'est la commande convert.exe qui reste.
Partager