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

avec Java Discussion :

tuer un process quand il nous rend pas la main


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Par défaut tuer un process quand il nous rend pas la main
    Bonjour,

    J ai utilisé l'API SHELL d'ADIGUBA dont voici la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Shell.system("systeminfo /s "+IP+" /u "+user+" /p "+pass+" > Temp\\blabla.txt 2<&1");
    donc jusque là ça marche niquel malheureusment j arrive sur un pc qui nous embete et la commande ne se termine jamais ce qui fait que je ne recupere pas la main et le programme est bloqué.
    je pensais mettre une sorte de timer avec un temps limite et a la fin du temps killer le process et sortir de la fonction puis reprendre le cours du programme
    je cherche sur google et sur la faq mais je ne vois pas trop

    merci de votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Java n'a pas, en standard, de mécanisme pour envoyer des signaux aux autres process, et donc à priori pour les killer. Une solution, sous unix, c'est d'exécuter la commande "kill" qui est une application à part entière, en lui passant le numéro de process à killer.

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Mais on peut tuer un process que l'on a lancé

    Avec mon API shell il faut utiliser la méthode consumeInBackground() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Shell shell = new Shell();
    Future<Integer> cmd = shell.command("systeminfo /s "+IP+" /u "+user+" /p "+pass+" > Temp\\blabla.txt 2<&1").consumeInBackground();
     
    // Le process s'exécute en tâche de fond
    int result = cmd.get(); // pour récupérer la valeur de retour (s'il est terminé)
     
    cmd.cancel(true); // pour annuler (et donc tuer) le process
    a++

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Par défaut
    bonjour,
    je dois maintenant pouvoir tuer le process que si il n est pas fini dans les 10 minutes.
    Je me disait que j allais declencher une sorte de chrono ou timer mais si le process ne me rend pas la main je ne peux plus faire une condition sur le temps ecoulé
    je ne trouve pas de solution
    merci de vote aide

  5. #5
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par lerab51 Voir le message
    bonjour,
    je dois maintenant pouvoir tuer le process que si il n est pas fini dans les 10 minutes.
    Je me disait que j allais declencher une sorte de chrono ou timer mais si le process ne me rend pas la main je ne peux plus faire une condition sur le temps ecoulé
    je ne trouve pas de solution
    merci de vote aide
    Tu lances un thread en tache de fond avant de démarrer ton process.
    ton Thread attend X minutes (10 dans ton cas) et kille ton process s'il tourne encore, sinon ton thread s'arrete

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Par défaut
    ouais merci j essaie avec le thread mais je debute avec le thread ce n est pas evident ce truc a ajouter dans un programme
    j y retourne
    encore merci

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/11/2007, 11h33
  2. Réponses: 1
    Dernier message: 15/05/2007, 09h16
  3. le Timer ne me rend pas la main
    Par toxycyty dans le forum Windows
    Réponses: 10
    Dernier message: 08/11/2006, 16h54
  4. RMAN ne rend pas la main
    Par big1 dans le forum Recovery Manager
    Réponses: 3
    Dernier message: 29/08/2006, 20h18
  5. Script CMD qui ne rend pas la main
    Par ipeteivince dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 10/06/2005, 11h00

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