sigar/bindings/java/examples/ProcessState.java

67 lines
1.6 KiB
Java
Raw Normal View History

2006-04-01 02:02:52 +08:00
import net.hyperic.sigar.*;
/*
2006-04-01 05:57:06 +08:00
Example to show the process state for a given pid.
2006-04-01 02:02:52 +08:00
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
2006-04-01 05:57:06 +08:00
See also: examples/Ps.java, examples/Top.java
2006-04-01 02:02:52 +08:00
*/
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();
}
}