Aby znaleźć numer pid
(potrzebny do uzyskania informacji o określonym procesie), można użyć numeru ProcessFinder
. Metoda wyszukiwania pojedynczego pidu procesu to findSingleProcess(String expression)
. Przykład:
Sigar sigar=new Sigar();
ProcessFinder find=new ProcessFinder(sigar);
long pid=find.findSingleProcess("Exe.Name.ct=explorer");
ProcMem memory=new ProcMem();
memory.gather(sigar, pid);
System.out.println(Long.toString(memory.getSize()));
Składnia wyrażenie to:
Class.Attribute.operator=value
Gdzie:
Class is the name of the Sigar class minus the Proc prefix.
Attribute is an attribute of the given Class, index into an array or key in a Map class.
operator is one of the following for String values:
eq - Equal to value
ne - Not Equal to value
ew - Ends with value
sw - Starts with value
ct - Contains value (substring)
re - Regular expression value matches
operator is one of the following for numeric values:
eq - Equal to value
ne - Not Equal to value
gt - Greater than value
ge - Greater than or equal value
lt - Less than value
le - Less than or equal value
Więcej informacji tutaj: http://support.hyperic.com/display/SIGAR/PTQL
użyłem sigar przed i okazało się, że dość łatwo. Czy możesz dokładnie określić, czego szukasz? Strona dokumentu PTQL w połączeniu z javadoc wydaje mi się całkiem dobrym początkiem. –
Tak więc, jako punkt wyjścia, potrzebuję informacji o wykorzystaniu procesora/pamięci dla określonego procesu, takiego jak explorer.exe (przykład). – CosminO
To trochę przypuszczenie, więc nie będę zamieszczać tego jako odpowiedzi; Myślę, że po prostu robisz ProcMem pm = new ProcMem(); pm.gather (sigar, yourPid); pm.getsize(). Analogowy dla procesora z ProcTime. Możesz użyć ProcessFinder, aby znaleźć pid z wyrażenia PTQL. –