[Apache] Processus qui boucle

Processus qui boucle [Apache] - Linux et OS Alternatifs

Marsh Posté le 04-03-2002 à 15:29:43    

Bonjour,
 
j'ai fait un CGI en C qui crée un processus qui va boucler.
Donc le processus fils boucle et le processus père (celui lancé par le navigateur) se termine. (fork, execlp et compagnie)
 
J'aimerai donc qu'au niveau du navigateur le processus se termine, mais que le processus fils continue de boucler.
 
Or au niveau du navigateur on continue de voir la barre des taches se charger.
 
Comment résoudre mon pb ?
 
Merci.


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 15:29:43   

Reply

Marsh Posté le 04-03-2002 à 15:32:07    

revoir le CGI  :??:


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 15:33:44    

jeremy a écrit a écrit :

Bonjour,
 
j'ai fait un CGI en C qui crée un processus qui va boucler.
Donc le processus fils boucle et le processus père (celui lancé par le navigateur) se termine. (fork, execlp et compagnie)
 
J'aimerai donc qu'au niveau du navigateur le processus se termine, mais que le processus fils continue de boucler.
 
Or au niveau du navigateur on continue de voir la barre des taches se charger.
 
Comment résoudre mon pb ?
 
Merci.  




Pourquoi ne pas lancer le prog c a partir d'un script shell qui serait le cgi?

Reply

Marsh Posté le 04-03-2002 à 15:34:49    

Je fait simplement un fork suivi d'un execlp qui lance donc le programme n°2 qui boucle.
Si je lance le programme au shell, il se termine bien directement et le processus qui boucle continue de boucler sans problème.
Or c'est quand je le lance en tant que CGI ke la barre des tachers continue de chercher indéfiniment, alors ke le 1er programme est bien terminé.
 
Une idée ?
Merci.


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 15:35:17    

jean >  
ca changerait quoi  si ce n'est que tu n'auras plus du tout la main cette fois ?

 

[jfdsdjhfuetppo]--Message édité par saudium--[/jfdsdjhfuetppo]


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 15:36:30    

jeremy a écrit a écrit :

Je fait simplement un fork suivi d'un execlp qui lance donc le programme n°2 qui boucle.
Si je lance le programme au shell, il se termine bien directement et le processus qui boucle continue de boucler sans problème.
Or c'est quand je le lance en tant que CGI ke la barre des tachers continue de chercher indéfiniment, alors ke le 1er programme est bien terminé.
 
Une idée ?
Merci.  




 
le browser n'a pas recu un signal de fin :??:  
 
mais là je m'aventure ;)


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 15:37:10    

Jean>
en effet je crois ke je vais essayer merci.


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 15:39:10    

saudium a écrit a écrit :

 
 
le browser n'a pas recu un signal de fin :??:  
 
mais là je m'aventure ;)  




 
en effet çà doit etre çà mais comment résoudre çà, c un autre problème lol


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 15:41:06    

Tout compte fait çà change rien en passant par un shell.
En fait faudrait en qque sorte réussir à lancer ce 2ème processus en tache de fond.


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 15:41:10    

là je vais avancer des trucs  meme pas vérifié :D :
 
  killer le pid du process en question avant la terminaison du script


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 15:41:10   

Reply

Marsh Posté le 04-03-2002 à 15:42:01    

oops , j'ai peut etre mal lu le sujet du probleme :(

 

[jfdsdjhfuetppo]--Message édité par saudium--[/jfdsdjhfuetppo]


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 16:08:46    

Donc si je résume, j'aimerai créer un processus qui fonctionnerait en mode asynchrone : le père crée le fils qui s'exécute en tache de fond et le père reprend la main et se termine.
 
Qqun pour m'aider ?
 
merci.


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 16:10:15    

le pere reprend la main ?  
 
ch'uis pas expert en fork mais il me semble que t'as du faire un exit suite au fork .  
 
Dans ce cas , comment retrouver le pere ?


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 16:16:04    

saudium a écrit a écrit :

le pere reprend la main ?  
 
ch'uis pas expert en fork mais il me semble que t'as du faire un exit suite au fork .  
 
Dans ce cas , comment retrouver le pere ?  




 
Ben je différencie les 2 processus en fonction de la valeur renvoyée par fork.
 
Le pire c ke çà marche si je le lance à partir de la console, mais pas par Apache. Si je le lance en CGI, et ke je fais un ps -ef, le cgi est dans l'état <defunct> et le fils qui boucle et présent, et le navigateur patiente tjours.
 
Prise de tete power lol


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 16:19:55    

attend , tu kill le pere ou non ?


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 16:22:52    

Ben vi, le père se termine comme tout programme con en C, la différence c ke en lancant par Apache il se met en <defunct> alors k'a partir de la console il n'est plus dans la liste des processus en cours.
Louche power


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 16:24:55    

jeremy a écrit a écrit :

Ben vi, le père se termine comme tout programme con en C,




 
:??:  
 
faut le specifier :  
 
  if (fork() != 0)
     exit(EXIT_SUCCESS);


---------------
root 66
Reply

Marsh Posté le 04-03-2002 à 16:29:21    

saudium a écrit a écrit :

 
 
:??:  
 
faut le specifier :  
 
  if (fork() != 0)
     exit(EXIT_SUCCESS);  




 
çà change rien :-\


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 04-03-2002 à 16:30:20    

peut etre voir du coté d'apache alors ...


---------------
root 66
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed