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

Administration système Discussion :

Détection d'application plantée


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut Détection d'application plantée
    Bonjour tout le monde !

    Je développe en ce moment un système embarqué sur une carte SBC9261, sous Linux 2.6.24. Ce système servira à gérer tout le réseau électrique de bateaux de plaisance (genre petits yachts) électriques (charge et décharge des batteries). Il doit donc être fiable et stable, d'autant plus qu'il sera allumé en permanence.

    J'ai donc besoin d'un watchdog ou quelque chose d'équivalent pour redémarrer les processus ou applications qui pourraient être plantés. La carte dispose d'un watchdog hardware, mais il me semble que celui-ci ne peut-être utilisé que par le kernel lui-même, puisqu'il va redémarrer entièrement la carte en cas de plantage de l'OS.

    J'aimerais donc savoir comment font les systèmes modernes (Linux, Windows ou Mac OS) pour détecter une application plantée (style "ne répond pas"), afin que je puisse la relancer.

    Ou d'autre suggestions, propositions ?

    Merci pour vos réponses !

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    si tu es sur de vouloir systématiquement redémarrer l'appli qu'elle plante ou soit tuée par l'utilisateur la solution propre est de la lancer à travers l'inittab (en mode respawn)

    Si tu souhaite traiter au cas par cas, il faut détecter les cas directement dans /proc /n°/*
    un processus qui a une activité de zéro est forcément douteux, si en plus il n'a plus son père c'est encore plus sur, ou si il a relaché tous les fichiers qu'ils avaient ouverts, alors il est planté...

  3. #3
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut
    Citation Envoyé par frp31 Voir le message
    si tu es sur de vouloir systématiquement redémarrer l'appli qu'elle plante ou soit tuée par l'utilisateur la solution propre est de la lancer à travers l'inittab (en mode respawn)
    En effet c'est pratique ! Ca marche vraiment quand l'application est plantée ?

    Citation Envoyé par frp31 Voir le message
    un processus qui a une activité de zéro est forcément douteux, si en plus il n'a plus son père c'est encore plus sur, ou si il a relaché tous les fichiers qu'ils avaient ouverts, alors il est planté...
    Super, je connaissais pas tous ces indices ! Merci !


    Sinon j'ai aussi posté sur un autre forum, qui m'a donné de bonnes pistes : http://www.linuxquestions.org/questi...96#post4145996


    Merci pour ta réponse !

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Par défaut
    Envoyé par frp31
    un processus qui a une activité de zéro est forcément douteux, si en plus il n'a plus son père c'est encore plus sur, ou si il a relâché tous les fichiers qu'ils avaient ouverts, alors il est planté...
    Ce sont des indices , mais selon le programme que vous voulez vérifier, ça peut vous induire en erreur. Si votre programme relâche à un moment donnée les fichiers qu'il n'utilise plus, ca serait dommage de le déclarer comme mort .
    Dans le cas des conseils donné sur le forum anglais , le problème du touch - Cron serait de considérer un programme comme crashé alors qu'il a juste un retard ou un problème sur l'écriture.
    Ces techniques peuvent fonctionner , malheureusement il est impossible de prouver que vous allez détecter tous les processus crashés à temps et que vous ne pourrez jamais suspecter un processus correct.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut
    Citation Envoyé par nem's Voir le message
    Ces techniques peuvent fonctionner , malheureusement il est impossible de prouver que vous allez détecter tous les processus crashés à temps et que vous ne pourrez jamais suspecter un processus correct.
    C'est vrai, c'est pas sûr à 100%, mais ça devrait suffire pour l'utilisation que je dois en faire (méthode du "heartbeat" à une fréquence de 5sec). Au pire, si le programme "surveillant" croît détecter un plantage alors qu'il n'en est rien, il va tuer l'application puis la relancer, ce qui se traduira pour l'utilisateur par une extinction de l'écran d'un peu plus d'une seconde.

    En revanche, ce n'est bien sûr pas satisfaisant pour les OS modernes. Saurais-tu comment fait par exemple Ubuntu pour détecter une appli plantée (il "grise" ensuite la fenêtre concernée) ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'application plante avec JDBC
    Par Balthek dans le forum JDBC
    Réponses: 23
    Dernier message: 18/08/2009, 16h41
  2. Réponses: 2
    Dernier message: 09/04/2009, 02h06
  3. [A-07] Application plante sous xp et pas sous vista
    Par Syrrus dans le forum VBA Access
    Réponses: 8
    Dernier message: 14/10/2008, 11h45
  4. Mon application plante avec TMainMenu
    Par SOPSOU dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/09/2007, 15h54
  5. Détection d'application installé
    Par Olv_m dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2007, 12h56

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