diff --git a/bindings/java/examples/ProcessState.java b/bindings/java/examples/ProcessState.java new file mode 100644 index 00000000..911553b1 --- /dev/null +++ b/bindings/java/examples/ProcessState.java @@ -0,0 +1,61 @@ +import net.hyperic.sigar.*; + +/* +Compile the example: +% javac -classpath sigar-bin/lib/sigar.jar ProcessState.java + +State of the java process running the example: +% java -classpath sigar-bin/lib/sigar.jar:. ProcessState +java: Running + +State of the bash shell when invoking the example is running: +% java -classpath sigar-bin/lib/sigar.jar:. ProcessState $$ +bash: Sleeping + +State of emacs editor used to write the example: +% java -classpath sigar-bin/lib/sigar.jar:. ProcessState 2673 +emacs: Suspended +*/ + +public class ProcessState { + + private static String getStateString(char state) { + switch (state) { + case ProcState.SLEEP: + return "Sleeping"; + case ProcState.RUN: + return "Running"; + case ProcState.STOP: + return "Suspended"; + case ProcState.ZOMBIE: + return "Zombie"; + case ProcState.IDLE: + return "Idle"; + default: + return String.valueOf(state); + } + } + + public static void main(String[] args) + throws SigarException { + + String pid; + if (args.length == 0) { + pid = "$$"; //default to this process + } + else { + pid = args[0]; + } + + Sigar sigar = new Sigar(); + + ProcState procState = sigar.getProcState(pid); + String state; + + + System.out.println(procState.getName() + ": " + + getStateString(procState.getState())); + + sigar.close(); + } +}