Bonjour à tous,

La question que j'ai est un peu technique... Ne sachant pas trop où la poser, je la met ici, même si elle concerne plus Apache, à mon avis.
Voici mon problème:

J'ai un exécutable que je lance depuis mon script PHP à l'aide d'un:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec("/usr/bin/appli --pipe=/tmp/monpipe &");
Comme vous pouvez le voir, je lui passe un pipe qui me permet de la commander depuis une application externe (ici, en l'occurrence, c'est pour garder la main dessus, malgré les diverses requêtes). J'aurais créer ce pipe préalablement avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
posix_mkfifo('/tmp/monpipe', 0777);
Ensuite, au requêtes suivantes, j'essaye d'arrêter mon application en lui envoyant une commande:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec("echo quit > /tmp/monpipe");
Et là, ça ne marche pas, quand elle est exécuté depuis apache.
Quand je lance en utilisateur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ /usr/bin/appli --pipe=/tmp/monpipe &
$ echo quit > /tmp/monpipe
Elle se lance et s'arrête sans soucis.
Quand je lance les scripts PHP sans apache:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ php launch_appli.php
$ php quit_appli.php
Elle se lance et s'arrête sans soucis, également.

Mais quand je les exécutes depuis apache, l'application s'exécute bien, et tourne dans les taches. Mais pour l'arrêt, c'est comme si l'application n'avait jamais pris le pipe. L'arrêt depuis apache coince, ainsi que:
Ça coince.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$ echo quit > /tmp/monpipe
Ça coince aussi (aucune réponse). C'est ce que ça fait lorsque que lance cette commande sans avoir d'application en écoute de l'autre coté.

Donc, par déduction, ce doit être une sécurité de apache quelque part en empêche de genre de chose. Mais toute mes recherches sont restés infructueuses.
Si quelqu'un à une idée là dessus, je suis preneur (je planche sur ce problème depuis plusieurs mois)

Merci beaucoup
Snark.