Fork et killage propre - C++ - Programmation
Marsh Posté le 07-01-2003 à 15:31:47
Une interception de SIG_CHLD
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
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
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
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 !
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
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