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

Scripts/Batch Discussion :

Tuer un exécutable


Sujet :

Scripts/Batch

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut Tuer un exécutable
    Bonjour, je vous explique rapidement mon soucis,

    Je fais tourner une appli qui à moment donné va lancer un programme.exe

    Et puis, un peu après, je veux tuer le programme.exe.
    (A noter que je n'ai que l'exe et que je n'ai pas accès au code de cet exe).

    Je fais donc un taskill à l'aide d'un .bat pour tuer programme.exe.
    Ceci marche bien, mais le problème c'est que le programme meurt, mais la console dans laquelle le programme tournait est toujours ouverte.

    Je voudrais pouvoir tuer cette fenêtre également, mais le soucis c'est que si je fais un taskill de cmd.exe je risque de tuer également l'appli principale non ?

    En fait, si j'ai plusieurs cmd.exe qui tourne comment je peux faire pour choisir d'en tuer seulement un parmi d'autre ? (sachant que j'ai aucun moyen de connaître leur pid.

    Merci !

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bonjour à toi,

    Ce n'est pas super clair.
    Comment lance tu ton exe (qui est à tuer) ?
    Tu as fais un .bat qui le lance et qui attends tant que l'appli tourne ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    En fait, l'exe c'est une sorte de serveur, peut importe comment tu le lances, tu ne peux le fermer qu'en tuant le process la croix du cmd est grisé en fait.

    Donc que je lance l'exe depuis un bat ou en double cliquant par exemple ça ne change à priori rien au problème je pense.Ceci étant dit, je lance bien depuis un bat dans le cas présent.

    Le bat qui le lance ne fait donc que je lancer

    Tout bêtement voilà le bat qui lance le serveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    echo "Attends 3 secondes pour s'assurer de la fermeture du précédent GrfIti"
    timeout /t 3
    C:\simu\Serveur\GrfItiServer.exe
    Donc le bat n'attends pas que l'appli tourne car une fois que l'appli tourne elle ne s'arrêtera pas, si j'attendais bah j'attendrais à l'infini en fait.

    Et voilà comment je tue le process

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    color 0F
    
    taskkill /f /im GrfItiServer.exe
    exit
    Avec ce code, le cmd dans lequel j'ai la serveur qui tourne va rendre la main à l'utilisateur après avoir tuer l'exe.

    En gros je me retrouve avec le prompt comme si j'avais ouvert la console. Et j'aimerais que cette console soit détruite également.


    Comme ces fichiers bats sont exécuté depuis un autre cmd, et que l'exécution globale peut me prendre plusieurs jours, j'ai pas vraiment envie de faire un takkill cmd.exe si je prend le risque de fermer l'appli principale.


    En espérant que ce soit un peu plus clair =)

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ok alors si j'ai bien tout compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    echo "Attends 3 secondes pour s'assurer de la fermeture du précédent GrfIti"
    timeout /t 3
    C:\simu\Serveur\GrfItiServer.exe
    Exit
    Et c'est réglé, le ce code va lancer ton exe puis se fermer.
    Tu n'auras plus ensuite qu'a le killer depuis un autre CMD mais tu n'auras plus de CMD qui traîne pour rien

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    Je suis pas vraiment persuadé, mais je vais tester ça à la prochaine exécution.

    Merci !

    PS: C'est Exit ou exit ? Ou batch en a rien carré de la syntaxe de sorte que ce pourrait être eXiT ?

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    exit Exit EXit EXIt peu importe

    Edit : Ah !!!!! Mais attends ton exe est bloquant !
    Donc quand tu le lance dans le Batch, le CMD reste ouvert....
    C'est bientôt le WE mes neurones fatigue

    Donc au lieu de lancer ton exe directement comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\simu\Serveur\GrfItiServer.exe
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start C:\simu\Serveur\GrfItiServer.exe
    Et la du coup, ton bat va lancer l'exe sans bloquer en attendant sa fin (puisqu'il n'y en a pas...).
    Et tu n'auras plus qu'as le tuer

Discussions similaires

  1. Exécution d'un web service sans tuer process
    Par oqastage dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 25/05/2012, 15h08
  2. [AC-2003] Tuer une macro trop longue à s'exécuter
    Par reeenooo dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/10/2009, 18h43
  3. [ArchiveBuilder][JavaMail] exécution impossible...
    Par Gorthal dans le forum JBuilder
    Réponses: 7
    Dernier message: 10/01/2003, 09h12
  4. Exécution indivisible (accès conccurent)
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 23/07/2002, 08h09
  5. Réponses: 2
    Dernier message: 06/07/2002, 12h36

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