Runing Prozesses

Bei einigen Projekten kommt es auch aufs Monitoring an. In Anwendungen mit zB. parallel laufenden Simulationsrechnungen, die über ein eigenes Tool optimal die Systemleistung ausnutzen sollen (in diesem Fall N-Kerne = N-Instanzen = N aktive Rechnungen) werden nicht nur sauber beendete Rechnungen so abgefangen sondern auch abstürze überwacht.

Dank ein paar Foren bin ich dann auf die Lösung gekommen, welches mir die Zahl der Prozesse eines bestimmten Programms wieder gibt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public int getproz(String name) {
    int counts = -1;
     try {
        BufferedReader pzr = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec("tasklist ").getInputStream()));
        counts = 0;
        String line=" ";
        while((line=pzr.readLine())!=null){
            if(line.contains(name)) {
                System.out.println(line);
                counts++;
            }
        }
    } catch (IOException e) {
        System.out.println("Fehler in der IO");
    }
    return counts;
}

Ich nutze hier die Console und den Befehl tasklist aus, der eine Liste von allen Prozessen ausgibt. Zwar ließe sich direkt auch nach den speziellen Filtern, funktionierte in Test bisher aber nicht zuverlässig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.