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

Programmation et administration système Perl Discussion :

mon processus cmd.exe n'est pas bien configuré lorsqu'il est lancé via la fonction system()


Sujet :

Programmation et administration système Perl

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 99
    Points
    99
    Par défaut mon processus cmd.exe n'est pas bien configuré lorsqu'il est lancé via la fonction system()
    Bonjour,

    Je travaille à faire tourner mon script perl sous windows en tant que service.

    J'utilise à cette fin le module Win32:aemon, pour manipuler SCM.

    Mon script perl est lancé par un .bat, ce dernier étant lui même appelé via la fonction system()

    La commande ressemble à:

    START \"title\" /Dc:\\path\\to\\bat\\script\\dir\\ \"script.bat\"
    Quand je lance la commande directement depuis l'interpréteur de commande, le titre "title" est correctement définit: la propriété "command line" du gestionnaire de tâches affiche bien la ligne suivante:

    cmd /c "title"C:\path\to\script.bat" "

    Cepandant après l'appel à system(), déclenché lors du démarrage de mon service, la propriété "command line" du gestionnaire de tâches est la suivante:

    cmd /c ""C:\path\to\script.bat" "
    Je ne comprends pas pourquoi mon titre n'est pas correctement configuré.


    Note: Tant qu'a faire, j'aimerai également savoir comment récupérer le PID du process lancé par mon .bat. La chaine est la suivante:

    Service.pl -> cmd.exe -> script.pl


    Merci.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bonjour,

    J'ai un peu de mal à comprendre ce que vous faite, j'ai l'impression que c'est tiré par les cheveux tout ça.

    Que souhaitez-vous concrètement faire ? Je ne vois pas le perl dans votre demande ?

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    La propriété "title" d'un processus est ce qui apparaît dans la colonne "Windows title", lorsque l'on effectue la commande suivante:
    tasklist /v

    Lorsque je crée un processus via l'interpréteur de commande:

    START \"title\" /Dc:\\path\\to\\bat\\script\\dir\\ \"script.bat\"
    Le titre "title" est bien pris en compte.

    Lorsque je lance cette même commande via la commande system() de perl, ou bien avec l'opérateur backticks (``), le titre n'est pas bien pris en compte.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bah il faut nous montrer ton programme Perl.

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Chez moi cela fonctionne dans mon programme perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system 'start "Mon titre du programme" ' . '"C:/Documents and Settings/user/Bureau/tk.pl"';

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 99
    Points
    99
    Par défaut
    Je viens de comprendre la raison de mon problème.

    Si on lance le programme perl qui contiens system(la_commande_START) via une ligne de commande, le titre est bien définit car une nouvelle fenêtre est effectivement créée.

    Lorsque la fonction est appelée via un service windows, aucune nouvelle fenêtre n'est générée, aucun titre n'est donc pris en compte.

    Ce qui m'amène à redéfinir mon problème (je vais créer un nouveau sujet). Ce dernier est le suivant:

    La commande system(), dans mon service, créé un processus qui ne semble pas lié par une relation "parent-enfant", au script perl appelant, lancé par le service.
    Lorsque je ferme le service, le script appelant est bien fermé, mais pas le processus lancé par la commande system()

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/01/2015, 12h14
  2. Réponses: 1
    Dernier message: 15/11/2013, 08h08
  3. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  4. Mon footer n'est pas bien placé
    Par Invité(e) dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 03/10/2008, 13h24
  5. [Access] Processus cmd.exe qui ne se ferment pas
    Par bitou_77 dans le forum Access
    Réponses: 2
    Dernier message: 30/08/2006, 18h55

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