IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Fork() et Signaux


Sujet :

Linux

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Points : 15
    Points
    15
    Par défaut Fork() et Signaux
    Bonjour!

    Petite question:

    j'ai un main() où je fais un fork() un certain nombre de fois comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(fork()==0){
    for(;;);
    }
    Je peux terminer le programme dans le main() en tappant 'q', ceci fait un exit(0), le père est terminé mais les fils (dans le fork()) sont 'orphelins'.

    Maintenant si je fais CTRL+C au niveau du père, le père est 'tué' et tout les fils avec.
    Etant donné que les fils n'héritent pas des signaux, pourquoi ce phénomène s'est-il produit?

    Salutation,
    Michael VD

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Dans le premier cas, tu crees des zombies : des processus ni morts ni vivants, qui n'ont plus de pere (ce qui n'est pas theoriquement possible en unix).

    Dans le second cas, lorsque le systeme tue le processus pere, il prend soin de tuer tous ses fils, pour rester dans un etat correct.

    Les deux cas sont mauvais : tu dois gerer le pere comme les fils. Si tu veux que ceux-ci vivent sans leur pere, il faut les demoniser ; tu trouveras de nombreux tutoriels sur ce sujet.
    Si tu veux que le systeme soit propre lorsque tu tues le pere, il faut que celui-ci tue ses fils avant de se tuer.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Fork et signaux
    Par j0o0 dans le forum POSIX
    Réponses: 4
    Dernier message: 20/03/2010, 12h19
  2. Fork() et signaux
    Par kaso54 dans le forum Linux
    Réponses: 3
    Dernier message: 31/05/2009, 19h52
  3. [Amstrad] Signaux à gérer port E/S pour lire ROM
    Par Masterglob dans le forum Autres architectures
    Réponses: 7
    Dernier message: 12/01/2005, 12h03
  4. [langage] [Fork] Détecter un fichier
    Par GLDavid dans le forum Langage
    Réponses: 11
    Dernier message: 08/07/2004, 01h05
  5. Pas de fork sous Windows?
    Par chezjm dans le forum POSIX
    Réponses: 8
    Dernier message: 11/06/2002, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo