DeliciousF a écrit 2 commentaires

  • [^] # Re: stdin

    Posté par  . En réponse au message Authentification pour une commande exécutée dans un exec(). Évalué à 1.

    Bon je n'y arrive pas mieux, grâce à tes indications j'ai pu orienter mes recherches et voila le code que j'ai pour le moment :
    (en grande partie récupéré)

    try {


    String[] cmd = {"sudo"," ps -A -eo pid,fname"};


    // lancement de la commande
    Runtime r = Runtime.getRuntime();
    Process p = r.exec(cmd);

    // récupération du mot de passe
    String rpass = JOptionPane.showInputDialog(null, "Mot de passe root :");

    // flux en entrée du process
    OutputStream os = p.getOutputStream();
    // flux en sortie du process
    InputStream is = p.getInputStream();

    // initialisation du printwriter pour écrire dans le flux
    PrintWriter writer = new PrintWriter(os, true);


    p.waitFor();

    // je lui donne le mot de passe
    writer.println(rpass);

    // Création du bufferedReader pour lire le résultat
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));

    // affichage de la sortie du process
    String line;
    while((line = reader.readLine()) != null)
    {
    System.out.println(line);
    }

    p.waitFor();
    p.destroy();
    rpass = null;
    }
    catch (Exception e){
    System.out.println("arf");

    }
    }

    En résultat je n'ai rien, je fourni le mot de passe et l'application se termine.

    j'ai testé avec juste : String cmd = "ps -A -eo pid,fname";
    et j'obtiens bien ma liste de processus.

    si je mets sudo à la place de su, ça reste en attente..

    Je n'ai pas trouvé de moyen de vérifier l'état des flux et après 3 jours de recherche, je n'arrive toujours à rien :/

    il manque peut etre un truc tout bête..
  • [^] # Re: stdin

    Posté par  . En réponse au message Authentification pour une commande exécutée dans un exec(). Évalué à 1.

    Merci je vais essayer ça ;)