package org.zstack.utils; import org.apache.commons.io.IOUtils; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * Created with IntelliJ IDEA. * User: frank * Time: 11:50 PM * To change this template use File | Settings | File Templates. */ public class Linux { public static class ShellResult { private String stderr; private String stdout; private int exitCode; public String getStderr() { return stderr; } public void setStderr(String stderr) { this.stderr = stderr; } public String getStdout() { return stdout; } public void setStdout(String stdout) { this.stdout = stdout; } public int getExitCode() { return exitCode; } public void setExitCode(int exitCode) { this.exitCode = exitCode; } } public static ShellResult shell(String cmdStr) { String[] cmds = cmdStr.split(" "); List<String> cmdLst = new ArrayList<String>(); Collections.addAll(cmdLst, cmds); return shell(cmdLst); } public static ShellResult shell(List<String> cmd) { try { ProcessBuilder pb = new ProcessBuilder(cmd); Process pro = pb.start(); int exitCode = pro.waitFor(); ShellResult ret = new ShellResult(); ret.setExitCode(exitCode); ret.setStderr(IOUtils.toString(pro.getErrorStream())); ret.setStdout(IOUtils.toString(pro.getInputStream())); return ret; } catch (Exception e) { throw new RuntimeException(e); } } }