Avatar billede grave Nybegynder
20. september 2001 - 16:21 Der er 2 kommentarer og
1 løsning

Process timeout

Det jeg skal have lavet er en timeout på den process jeg fyrer af, så der bliver returneret true hvis programmet svarer false hvis ikke.

hvordan kan jeg det ?
jeg har lavet denne lille stump jeg godt vil have det ind i..

public Runtime rt = Runtime.getRuntime();
    public Process pr;
   
    public boolean getPdStatus() {
        try {
            rt.exec(\"/usr/lpp/pd/bin/pdls -F\");
            return true;
        } catch(IOException e) {
            System.err.println(\"Wrong Command\");
            return false;
        }
    }
Avatar billede grave Nybegynder
20. september 2001 - 16:27 #1
der skal bare returneres true hvis pdls svarer false hvis ikke
Avatar billede logical Nybegynder
20. september 2001 - 19:38 #2
Normalt er der ikke så meget rent IPC support i java :-) Når du har startet en separat process er der kun seks ting man kan gøre:
vente på at den terminerer
Terminere den
Aflæse dens termineringsstatus
Fodre data til dens input
Modtage dens output
Modtage dens fejlbeskeder.

Afhængig af programmet pdls -F som jeg ikke kender, så må det at den svarer betyde at den udskriver nogle ting til skærmen. Eller hvad, for så er svaret:
Process p = rt.exec(\"/usr/lpp/pd/bin/pdls -F\");
InputStream s = p.getInputStream();
Thread.sleep(x);
if (s.available() > 0 )
  System.out.println(\"Some response has come up\");

Alternativt, det at den svarer kan også betyde at programmet kan køres, for så ville jeg lige lave en check:
File f = new File(\"/usr/lpp/pd/bin/pdls -F\");
if (!f.exists() || !f.isFile())
  System.err.println(\"Go nood talking to this one.\");

Du kan iøvrigt også fra en Process undersøge, om den stadig er kørende med:
p.exitValue()
Hvis den smider en IllegalStateException, er den stadig kørende.

Jeg skal gøre dig opmærksom på, at der er ikke er noget som helst i specs som siger at processen skal se hverken synkron eller asynkron.
Avatar billede grave Nybegynder
20. september 2001 - 22:06 #3
det er precist den første du skrev jeg ledte efter !!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester