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

Langage Perl Discussion :

vérifier si un programme est en cours d'éxécution


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut vérifier si un programme est en cours d'éxécution
    Bonjour,

    Mon script recherche dans ma base de données les entrées à mettre à jour. Il se connecte à un site (Genbank) afin d'y rechercher la valeur à actualiser. Parfois, il s'arrête et affiche un message d'erreur disant que l'identifiant correspondant à cette donnée n'existe pas dans GenBank. Or cet identifiant existe bien sur GenBank et la valeur correspondante est d'ailleurs correctement mise à jour dans ma DB. Le problème est que le programme s'arrête de tourner. Je l'exécute à nouveau manuellement et il continue sa tache.

    J'aimerais le laisser tourner ce week-end, il me faudrait donc un moyen de relancer automatiquement le script qui s'arrête.

    Ma question est donc, comment faire afin de vérifier toutes les x minutes que mon script tourne toujours et de le relancer dans le cas contraire. Je suis sous Windows XP.



    Merci pour votre aide,

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Par défaut
    je pense qu'avec le planificateur des taches tu dois pouvoir le relancer toutes les x minutes, après je sais pas si tu peux vérifier s'il est en cours d'exécution

    est ce que tu sais si lorsqu'il fait son erreur il y a un log dans le journal d'événements windows, car si oui avec le planificateur tu peux lui dire de relancer ton script

    édit : excuses moi, cette option est disponible sous vista, j'ai pas xp sous la main mais cela n'est pas disponible non plus sous serveur 2003, donc il est possible qu'elle n'existe pas sous xp

    edit2: ça ne va pas t'aider par contre la commande tasklist en dos te donne la liste des taches en cours, donc tu peux faire un script qui exécute cette commande toutes les x minutes analyser le résultat pour savoir si ton script tourne et le relancer le cas échéant

    Pour les détails voir les tutoriels et cours de formation pour la programmation PERL : http://perl.developpez.com/cours/

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par maxouff Voir le message
    je pense qu'avec le planificateur des taches tu dois pouvoir le relancer toutes les x minutes, après je sais pas si tu peux vérifier s'il est en cours d'exécution
    Au pire, je pourrais le relancer toutes les 2h en supposant qu'il y ait une forte probabilité qu'il ait planté.
    L'appel d'un script en cours d'exécution écrase t'il celle-ci et le script redémarre-t'i à zéro? Si oui, ce n'est pas un problème étant donné que les entrées de ma DB sont corrigées au fur et à mesure et que mon script effectue une requête ne récupérant que les entrées restant à modifier.

    Citation Envoyé par maxouff Voir le message
    est ce que tu sais si lorsqu'il fait son erreur il y a un log dans le journal d'événements windows, car si oui avec le planificateur tu peux lui dire de relancer ton script

    édit : excuses moi, cette option est disponible sous vista, j'ai pas xp sous la main mais cela n'est pas disponible non plus sous serveur 2003, donc il est possible qu'elle n'existe pas sous xp
    Je ne sais pas si il existe un journal d'évènement, où se trouve t'il sur vista?

    Citation Envoyé par maxouff Voir le message
    edit2: ça ne va pas t'aider par contre la commande tasklist en dos te donne la liste des taches en cours, donc tu peux faire un script qui exécute cette commande toutes les x minutes analyser le résultat pour savoir si ton script tourne et le relancer le cas échéant
    Peut-être est-ce le plus simple. Donc, 1 je fais un script qui est lancé toutes les 5 minutes par le planificateur de tâche. Ce script vérifie que mon programme tourne bien et dans le cas contaire, l'exécute.


    Je vais regarder à tout cela, merci beaucoup.

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    la solution d'une tâche planifiée toutes les 2h tombe à l'eau car c'est au maximum 1 exécution par jour

    ... je ne sais plus que faire.

    Si j'écris un script en commande DOS est-il possible qu'il tourne pendant 2 jours et effectue une commande tous les x temps ... sans devoir le relancer via les tâche planifiées?

  5. #5
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Si mon script perl fait
    Cela me retourne perl.exe, quelque soit le script en cours d'exécution ... ça complique tout, je vais devoir compter le nombre de perl.exe dans la liste afin de vérifier si il y en a bien 2.
    N'existe t'il pas une commande dos permettant de vérifier si le programme update_taxons.pl est en cours d'exécution?


    Merci pour ton aide,

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Par défaut
    a titre informatif vu que ce n'est pas forcément la meilleure solution le journal d'événements à changer de nom sous vista et s'appelle "observateur d'événements" dans panneau de configuration, outils d'administration.

    après tu peux faire un script perl qui tourne en boucle avec un timeout à chaque tour qui fait le teste de l'existence de ton premier script et le relance s'il s'est arrêté.

  7. #7
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    J'ai l'impression que tu essaies de contourner un problème de comportement de ton script. Pourquoi ne pas le modifier pour qu'il ne s'arrête pas s'il ne trouve pas la valeur que tu cherches ? Pourquoi ne pas corriger le fait qu'il trouve la valeur, met à jour ta base mais s'arrête en erreur ???

Discussions similaires

  1. [XL-2003] Vérifier si un programme est en cours d'execution
    Par azertym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/03/2012, 10h58
  2. Vérifier que le programme est ouvert
    Par Loenix dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 14/05/2009, 15h50
  3. Vérifier si un programme est ouvert
    Par wonderboutin123 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/02/2008, 11h36
  4. [MySQL] Vérifier si une données est en cours
    Par namstou3 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/08/2007, 17h21
  5. [PHP-JS] Vérifier si un script est en cours d'exécution
    Par renaudjuif dans le forum Langage
    Réponses: 7
    Dernier message: 14/02/2007, 02h41

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