Para encontrar el pid
(que es necesario para obtener información sobre un determinado proceso), puede utilizar un ProcessFinder
. El método para encontrar un único proceso pid es findSingleProcess(String expression)
. Ejemplo:
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()));
La sintaxis de la expresión es la siguiente:
Class.Attribute.operator=value
Dónde:
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
Más información aquí: http://support.hyperic.com/display/SIGAR/PTQL
Solía SIGAR antes, y me pareció bastante fácil. ¿Puedes especificar exactamente lo que estás buscando? La página de doc de PTQL combina con javadoc me parece un buen comienzo. –
Entonces, como punto de partida, necesito la información sobre el uso del proccessor/memoria para un determinado proceso, como explorer.exe (ejemplo). – CosminO
Esto es una especie de suposición, por lo que no lo publicaré como respuesta; Creo que acaba de hacer ProcMem pm = new ProcMem(); pm.gather (sigar, suPid); pm.getsize(). Analógico para la CPU con ProcTime. Puede usar ProcessFinder para encontrar un pid de una expresión PTQL. –