|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2005 Messages : 31 ![]() |
Bonjour,
J'ai parcouru tous les threads sur le sujet mais je n'ai trouvé aucun qui corespondait à mon problème: Les acteurs : - un CGI qui doit renvoyer des pages HTML - un deamon (appli console) qui peut renseigner le cgi sur demande via TCP-IP Lorsqu'il doit effectuer un traitement le cgi demande ses infos au deamon via TCP, effectue son traitement et fait son sendresponse (page affichée dans navigateur) au moment de se fermer. S'il se rend compte que personne n'écoute sur le port TCP, alors il lance le programme : libc.system('Deamon.sh &'), redemande les infos effectue son traitement mais au moment de faire son sendresponse et de se fermer, il ne fait rien. Il attend que le deamon soit terminé avant de se fermer. Du coup il n'y a pas de retour dans le navigateur pour le CGI qui doit lancer le deamon. Si quelqu'un a une idée pour empecher le "père" d'attendre le "fils"... Merci PS : J'ai essayé, dans system(), avec et sans le & , en appelant directement l'exe ou en passant par un script sh qui lance l'exe. |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 7 ![]() |
La command system fait un fork() puis un waitpid().
Cela veut dire que par conception elle attend la fin du pocess fils pour sortir. Si tu dispose sous pascal de l'equivalent de fork() ou meme spawn() et exec() utilise les. Autrement inclus les fonctions fork() qui sont dans libc. Comment ?? je n'en ai aucune idees a ce moment mais je sais que cela est possible. Je peux te fournir un exemple C si tu sais faire. Yves |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com