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

Python Discussion :

Savoir si un programme externe est déjà lancé


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut Savoir si un programme externe est déjà lancé
    Bonsoir,

    J'explique le topo ...

    J'ai codé une appli python qui permet de piloter (gérer, utiliser, ...) un programme externe très spécifique. Il s'agit d'une appli exclusivement LINUX (je ferais peut-être un portage Windows mais c'est pas à l'ordre du jour)
    Tout fonctionne nickel, no souci.

    Cependant, comme il s'agit d'un prog externe, l'utilisateur a pu (raisons x ou y, peu importe) l'avoir lancé avant mon appli. Or une seule instance (daemon) ne peut être exécutée à la fois. S'il est déjà présent, mon appli flanche.
    Il me faut donc savoir, au démarrage de mon appli, si le daemon 'externe' est actif ou pas.

    Comment le savoir ?

    Ah oui, info supplémentaire : le chemin du prog externe n'est pas dans le $PATH

    Merci de votre aide :-)

  2. #2
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    C'est pas un façon très propre ou portable, mais ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import os
     
    processus = 'python'
    s = os.popen('ps ax').read()
    if processus in s:
      print '%s est déjà lancé' % processus

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Ca fonctionne tant qu'un autre processus ne porte pas un nom contenant le premier
    Par exemple si tu cherches abc, et que tu as un processus abcde il sera considéré comme trouvé

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut [RESOLU] Savoir si un programme externe est déjà lancé
    Je vous remercie ! Ca fonctionne même si, effectivement, ce n'est pas des plus propres ! ;-)

    Le nom du processus est suffisamment long et spécifique pour qu'il n'y ait pas d'ambiguïté.

  5. #5
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Si le nom du processus devenait amibu, il serait possible d'utiliser une expression régulière avec les balises délimitant les mots (\b en Python si ma mémoire est bonne) pour s'assurer de trouver le bon processus.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/06/2015, 08h39
  2. Réponses: 3
    Dernier message: 29/08/2012, 11h02
  3. [Toutes versions] macro qui teste si un programme externe est en cours d'execution
    Par jejerome dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/09/2009, 20h50
  4. Réponses: 12
    Dernier message: 08/07/2008, 13h34
  5. Savoir si ma base access est déja lancée
    Par Kirby_thestar_hunter dans le forum Access
    Réponses: 2
    Dernier message: 08/12/2006, 13h51

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