Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright (c) 2006-2008 Hyperic, Inc.
* Copyright (c) 2010 VMware, 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.
*/
package org.hyperic.sigar.cmd;
import java.io.IOException;
import java.io.File;
import java.lang.reflect.Constructor;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarPermissionDeniedException;
import org.hyperic.sigar.SigarLoader;
import org.hyperic.sigar.SigarProxy;
import org.hyperic.sigar.SigarProxyCache;
import org.hyperic.sigar.ptql.ProcessFinder;
import org.hyperic.sigar.shell.ShellBase;
import org.hyperic.sigar.shell.ShellCommandExecException;
import org.hyperic.sigar.shell.ShellCommandHandler;
import org.hyperic.sigar.shell.ShellCommandInitException;
import org.hyperic.sigar.shell.ShellCommandUsageException;
import org.hyperic.sigar.util.Getline;
/**
* The Sigar Shell provides a command shell for running the example
* commands and Sigar tests.
*/
public class Shell extends ShellBase {
public static final String RCFILE_NAME = ".sigar_shellrc";
private static final String CLEAR_SCREEN = "\033[2J";
private Sigar sigar = new Sigar();
private SigarProxy proxy = SigarProxyCache.newInstance(this.sigar);
private long[] foundPids = new long[0];
private boolean isInteractive = false;
public Shell() {
}
public static void clearScreen() {
System.out.print(CLEAR_SCREEN);
}
public SigarProxy getSigarProxy() {
return this.proxy;
}
public Sigar getSigar() {
return this.sigar;
}
public boolean isInteractive() {
return this.isInteractive;
}
public void setInteractive(boolean value) {
this.isInteractive = value;
}
public void registerCommands() throws ShellCommandInitException {
registerCommandHandler("df", new Df(this));
registerCommandHandler("du", new Du(this));
registerCommandHandler("ls", new Ls(this));
registerCommandHandler("iostat", new Iostat(this));
registerCommandHandler("free", new Free(this));
registerCommandHandler("pargs", new ShowArgs(this));
registerCommandHandler("penv", new ShowEnv(this));
registerCommandHandler("pfile", new ProcFileInfo(this));
registerCommandHandler("pmodules", new ProcModuleInfo(this));
registerCommandHandler("pinfo", new ProcInfo(this));
registerCommandHandler("cpuinfo", new CpuInfo(this));
registerCommandHandler("ifconfig", new Ifconfig(this));
registerCommandHandler("uptime", new Uptime(this));
registerCommandHandler("ps", new Ps(this));
registerCommandHandler("pidof", new Pidof(this));
registerCommandHandler("kill", new Kill(this));
registerCommandHandler("netstat", new Netstat(this));
registerCommandHandler("netinfo", new NetInfo(this));
registerCommandHandler("nfsstat", new Nfsstat(this));
registerCommandHandler("route", new Route(this));
registerCommandHandler("version", new Version(this));
registerCommandHandler("mps", new MultiPs(this));
registerCommandHandler("sysinfo", new SysInfo(this));
registerCommandHandler("time", new Time(this));
registerCommandHandler("ulimit", new Ulimit(this));
registerCommandHandler("who", new Who(this));
if (SigarLoader.IS_WIN32) {
registerCommandHandler("service", new Win32Service(this));
registerCommandHandler("fversion", new FileVersionInfo(this));
}
try {
//requires junit.jar
registerCommandHandler("test", "org.hyperic.sigar.test.SigarTestRunner");
} catch (NoClassDefFoundError e) { }
catch (Exception e) { }
}
private void registerCommandHandler(String name, String className) throws Exception {
Class cls = Class.forName(className);
Constructor con = cls.getConstructor(new Class[] { this.getClass() });
registerCommandHandler(name, (ShellCommandHandler)con.newInstance(new Object[] { this }));
}
public void processCommand(ShellCommandHandler handler, String args[])
throws ShellCommandUsageException, ShellCommandExecException
{
try {
super.processCommand(handler, args);
if (handler instanceof SigarCommandBase) {
((SigarCommandBase)handler).flush();
}
} finally {
SigarProxyCache.clear(this.proxy);
}
}
public static long[] getPids(SigarProxy sigar, String[] args)
throws SigarException {
long[] pids;
switch (args.length) {
case 0:
pids = new long[] { sigar.getPid() };
break;
case 1:
if (args[0].indexOf("=") > 0) {
pids = ProcessFinder.find(sigar, args[0]);
}
else if (args[0].equals("$$")) {
pids = new long[] { sigar.getPid() };
}
else {
pids = new long[] {
Long.parseLong(args[0])
};
}
break;
default:
pids = new long[args.length];
for (int i=0; i