2010-04-29 05:57:11 +08:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2006 Hyperic, Inc.
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
2006-06-27 20:44:52 +08:00
|
|
|
import org.hyperic.sigar.*;
|
2006-04-01 02:02:52 +08:00
|
|
|
|
|
|
|
/*
|
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();
|
|
|
|
}
|
|
|
|
}
|