Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2011, 16h12   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 0
Points : 0
Par défaut attraper un kill process

Bonjour à tous,

j'ai un programme C dans lequel il y a une boucle infinie.
Dans cette boucle le process père crée plusieurs processus fils.
Chaque fils exécute une fonction().

je lance mon programme avec nohup.
Donc pour arrêter mon prog je fails un killall monprog.
Le problème, c'est que je ne sais pas comment attraper le killall par le père de façon à ce qu'il attend la fin des fils et puis liberer la mémoire.

Je vous serai reconnaissant de votre aide, car je dois rendre le projet vendredi.
Postgres.0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 22h28   #2
Membre expérimenté
 
Avatar de cboudy
 
Ingénieur informatique industrielle
Inscription : avril 2006
Messages : 382
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur informatique industrielle

Informations forums :
Inscription : avril 2006
Messages : 382
Points : 526
Points : 526
avec la fonction signal tu devrais pouvoir t'en sortir
cboudy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 10h07   #3
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 0
Points : 0
Justement,

comment l'utiliser.
Postgres.0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 13h21   #4
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Installe un signal handler avec sigaction(). Dans le signal handler, tu positionnes une variable qui indiquera à la boucle principale de ton programme de sortir. Dans la boucle principale de ton programme, tu testes si la variable est positionnée, et si c'est le cas tu sorts et tu attends la fin de tes fils.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h24.


 
 
 
 
Partenaires

Hébergement Web