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 :

Vérifier qu'un programme est en fonctionnement


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 44
    Points
    44
    Par défaut Vérifier qu'un programme est en fonctionnement
    Bonjour, j'ai une petite série de question
    J'ai besoin qu'un programme tourne en continue sur ma debian.

    N'ayant pas d'énormes connaissances dans ce domaine, pour le moment j'utilise un cron qui va relancer le programme tous les 1/4h qu'il soit en marche ou non.

    Je vous l'accorde, c'est vraiment une solution de m***e. Je cherche a réaliser un petit script qui vérifiera en continu si le programme est lancé.
    Voila en gros le schéma.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Le programme foctionne t'il ?
        OUI : on ne fait rien
        NON : on le relance
    Mes premieres recherches me font penser qu'il faut créer un deamon.

    Lorsqu'il y a de l'activité, le programme communique sur le port 3010 par telnet.

    Pouvez vous me dire si je suis complétement a coté de la plaque, ou si ça va encore.
    Est ce compliquer a programmer pour quelqu'un qui maitrise plutot le PHP ? Y'a t'il des fichiers préremplis un peu comme pour lancer des programmes au démarrage sous debian ?

    Voila, merci

  2. #2
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Le plus simple et le plus utilise est de creer un fichier a une position fixe avec le pid du programme dedans ( via pgrep par exemple )

    Ensuite regulierement, tu teste si le fichier existe et si le pid qui est dedans correspond bien a ton processus. Si une des deux conditions n'est pas rempli, il faut le relancer.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 30
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    je pense que quand ton programme est actif il est dans la liste des process indépendamment du fait qu'il utulise ou non un port. La commande suivante va donc le lister :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ps -eaf |grep monprog
    le script ci-dessous répond peut-etre à ton besoin :
    var=""
    var=`ps -eaf|grep monprog`
    echo $var
    if test "$var" = ""
    then monprog
    fi
    (à combiner avec la solution du fichier PID)
    C'est ce script qui pourrait surveiller régulièrement l'activité de ton programme et ne le lancer que s'il n'est pas déjà en machine. Toutefois il y aura toujours un pas d'exécution. Tu peux aussi placer ce code dans une boucle avec à l'intérieur une commande sleep n secondes, le script restant actif. Attention aux perfomances.
    Sinon je crois qu'il existe en inittab un mode respawn qui maintient un process actif. Je ne sais pas si c'est applicable à ton cas ni quel est l'impact sur les performances. Pourquoi ton programme une fois lancé disparait-il s'il attend sur un port ?

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Pourquoi pas tout simplement avec pidof ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     if [ -n "$( pidof PROGRAMME  )" ] 
     then echo "le programme tourne" 
     else echo "le programme ne tourne pas" 
     fi

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 44
    Points
    44
    Par défaut
    tres bien, merci à vous, je vais tester ces solutions et je vous tiendrais au courant.
    En fait ce programme se coupe de temps en temps sans qu'on trouve la raison, alors en attendant d'avoir le temps d'explorer le code, je cherche cette solution qui mainiendrai le programme en route.
    Encore merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 44
    Points
    44
    Par défaut
    Voila, j'ai utilisé la methode de Becket.
    Ca marche, merci a vous.

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

Discussions similaires

  1. Mon programme est considéré comme un trojan -_-'
    Par peijnoob dans le forum Windows
    Réponses: 3
    Dernier message: 21/03/2007, 15h26
  2. Réponses: 3
    Dernier message: 17/11/2006, 21h19
  3. Ajout/suppression de programmes est inopérant
    Par MicroPuce dans le forum Windows Serveur
    Réponses: 19
    Dernier message: 02/06/2006, 11h40
  4. Savoir si un programme est en execution ou pas.
    Par alan8 dans le forum Windows
    Réponses: 5
    Dernier message: 29/08/2005, 12h22
  5. [Applet][Exec programme] Est ce possible sur un serveur ?
    Par gandalf_le_blanc dans le forum Applets
    Réponses: 31
    Dernier message: 11/05/2004, 15h15

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