Aller au contenu

[PHP] exec et tache de fond


Magnus63

Messages recommandés

Posté(e)

Salut, mon petit probleme est ma volonté de relancer mon serveur mysql grace au php (pour l'automatiser dans mon script).

pour le moment je passe par ca:

exec("\"C:/EasyPHP1-8/mysql/bin/mysqld.exe\" --language=french ");

Le probleme, c'est que ca me le lance pas en tache de fond.

Ce que je voudrais c'est qu'il se lance comme si je double cliquais dessus.

Si quelqu'un à une idée, je suis preneur.

Posté(e)

Je ne sais pas trop si c'est ca que tu recherches n'ayant pas trop testé l'exécution de programmes via php mais peut etre que le probleme vient du fait que l'execution de ton serveur mysql produit une sortie standard et qu'ainsi ton code php ne peut plus reprendre la main. A ce moment la, il faudrait que tu rediriges la sortie standard de l'executable dans un fichier quelconque ou meme /dev/null au pire. voila, j'espere t'avoir aide ;)

Posté(e)

je suis d'accord,jai essayé et sa marche (si je redirige vers toto.txt par exemple.)le truc c'est que je ne veux pas rediriger car je veux faire un truc portable et je ne sais pas si sous linux la redirection est posible.

Posté(e)

Ben, a priori, tu n'as pas d'autre choix puisqu'il ne me semble pas qu'il soit possible de creer un nouveau processus ou meme un thread en php. Pour ce qui est de la redirection sous linux, c'est tout a fait possible. Par contre je ne connais pas la syntaxe de la redirection de sortie standard sous windows donc je ne peux pas te dire s'il y'aura incompatibilité ou non.

En tout cas, pour moi, si tu ne trouves pas une fonction genre fork en php (il ne me semble vraiment pas que ca existe mais je peux me tromper), la seule solution qu'il te restera sera de faire une redirection pour que ton code php puisse reprendre la main.

Posté(e)

J'ai pas dit que c'etait joli hin! ;)

Ou sinon a la rigueur, tu te fais un quelconque script capable de creer un nouveau processus, tu colles mysql dans le processus lancé et le processus père continue son exécution. Tu n'as plus qu'à lancer ce script via la commande exec. Peut-être que ca sera plus joli comme ca :keskidit:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...