Fork et killage propre

Fork et killage propre - C++ - Programmation

Marsh Posté le 07-01-2003 à 15:25:10    

Salut,
 
g un démon appelé par exemple proc1 (lancé par la commande proc1&)
A tout moment, en recevant une requête par TCP, ce démon peut créer un processus proc2 (fork suivi de execlp)
 
Or à tout moment, à partir d'un autre programme, je peux tuer le processus proc2 en utilisant la fonction kill.
Le problème est que proc2 se met en defunct puisque le père (proc1) n'est pas tué.
 
Comment je peux faire pour faire en sorte que proc2 soit tué proprement ? Le détacher de son père à la naissance ?
 
Merci !


Message édité par cypress le 07-01-2003 à 15:29:59

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

Marsh Posté le 07-01-2003 à 15:25:10   

Reply

Marsh Posté le 07-01-2003 à 15:30:23    

ben le kill et un wait

Reply

Marsh Posté le 07-01-2003 à 15:31:47    

Une interception de SIG_CHLD


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 07-01-2003 à 15:34:08    

ben un zombie, c'est un processus mort sans que son pere en ait été averti. tu rajoute un wait ou waitpid, qui renseigne un processus sur la mort d'un autre. man est ton ami

Reply

Marsh Posté le 07-01-2003 à 15:39:16    

Merci !
 
Le souci si je fait un wait dans proc1, c kil va attendre la fin de proc2, et donc suspendre son exécution, or je veux qu'il continue de s'éxécuter (écoute sur socket), avec création éventuelles d'autres fils.
 
Je vois clair ou je dérive ?
 
Thanks


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

Marsh Posté le 07-01-2003 à 15:42:24    

fais une appli multithreadé.
soit remplace tes processus fils par des threads, soit fais un thread de création de processus et d'autres s'occupant de taches diverses

Reply

Marsh Posté le 07-01-2003 à 15:44:15    

Hum çà va me faire modifier pas mal de trucs... J'vais regarder de ce coté
 
mais si ya plus simple je suis preneur
 
thanks !


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

Marsh Posté le 07-01-2003 à 15:47:36    

ben apparemment tu fais une appli genre server... le multithread est tout indiqué: le thread principal ecoute un socket et a chaque requete lance un nouveau thread

Reply

Sujets relatifs:

Leave a Replay

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