Java Code Examples for org.apache.commons.exec.DefaultExecutor#setExitValues()
The following examples show how to use
org.apache.commons.exec.DefaultExecutor#setExitValues() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ScriptUtil.java From open-capacity-platform with Apache License 2.0 | 6 votes |
/** * 日志文件输出方式 * * 优点:支持将目标数据实时输出到指定日志文件中去 * 缺点: * 标准输出和错误输出优先级固定,可能和脚本中顺序不一致 * Java无法实时获取 * * @param command * @param scriptFile * @param logFile * @param params * @return * @throws IOException */ public static int execToFile(String command, String scriptFile, String logFile, String... params) throws IOException { // 标准输出:print (null if watchdog timeout) // 错误输出:logging + 异常 (still exists if watchdog timeout) // 标准输入 try (FileOutputStream fileOutputStream = new FileOutputStream(logFile, true)) { PumpStreamHandler streamHandler = new PumpStreamHandler(fileOutputStream, fileOutputStream, null); // command CommandLine commandline = new CommandLine(command); commandline.addArgument(scriptFile); if (params!=null && params.length>0) { commandline.addArguments(params); } // exec DefaultExecutor exec = new DefaultExecutor(); exec.setExitValues(null); exec.setStreamHandler(streamHandler); int exitValue = exec.execute(commandline); // exit code: 0=success, 1=error return exitValue; } }
Example 2
Source File: ProcessExecutor.java From vespa with Apache License 2.0 | 6 votes |
/** * Executes the given command synchronously. * * @param command The command to execute. * @param processInput Input provided to the process. * @return The result of the execution, or empty if the process does not terminate within the timeout set for this executor. * @throws IOException if the process execution failed. */ public Optional<ProcessResult> execute(String command, String processInput) throws IOException { ByteArrayOutputStream processErr = new ByteArrayOutputStream(); ByteArrayOutputStream processOut = new ByteArrayOutputStream(); DefaultExecutor executor = new DefaultExecutor(); executor.setStreamHandler(createStreamHandler(processOut, processErr, processInput)); ExecuteWatchdog watchDog = new ExecuteWatchdog(TimeUnit.SECONDS.toMillis(timeoutSeconds)); executor.setWatchdog(watchDog); executor.setExitValues(successExitCodes); int exitCode; try { exitCode = executor.execute(CommandLine.parse(command)); } catch (ExecuteException e) { exitCode = e.getExitValue(); } return (watchDog.killedProcess()) ? Optional.empty() : Optional.of(new ProcessResult(exitCode, processOut.toString(), processErr.toString())); }
Example 3
Source File: LineUtils.java From super-cloudops with Apache License 2.0 | 5 votes |
/** * Execution shell commands * * @param line * @param timeout * @param charset * @return */ public static String execAsString(String line, long timeout, String charset) { // Standard output ByteArrayOutputStream out = new ByteArrayOutputStream(); // Error output ByteArrayOutputStream err = new ByteArrayOutputStream(); CommandLine commandline = CommandLine.parse(line); DefaultExecutor exec = new DefaultExecutor(); exec.setExitValues(null); // Timeout ExecuteWatchdog watch = new ExecuteWatchdog(timeout); exec.setWatchdog(watch); PumpStreamHandler handler = new PumpStreamHandler(out, err); exec.setStreamHandler(handler); try { exec.execute(commandline); // Different operating systems should pay attention to coding, // otherwise the results will be scrambled. String error = err.toString(charset); if (isNotBlank(error)) { throw new IllegalStateException(error.toString()); } return out.toString(charset); } catch (IOException e) { throw new IllegalStateException(e); } }
Example 4
Source File: CommandExecutorService.java From cloud-portal with MIT License | 5 votes |
public CommandResult execute(CommandLine commandLine, File workingDirectory, OutputStream outputStream) { CommandResult commandResult = new CommandResult(); try { // create executor for command DefaultExecutor executor = new DefaultExecutor(); // set working directory if (workingDirectory != null) { executor.setWorkingDirectory(workingDirectory); } // set possible exit values executor.setExitValues(IntStream.range(0, 255).toArray()); // create output stream for command ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); TeeOutputStream teeOutputStream = new TeeOutputStream(outputStream, byteArrayOutputStream); AutoFlushingPumpStreamHandler streamHandler = new AutoFlushingPumpStreamHandler(teeOutputStream); executor.setStreamHandler(streamHandler); // execute command int exitValue = executor.execute(commandLine); // fill command result commandResult.setOutput(byteArrayOutputStream.toString()); commandResult.setSuccess(exitValue == 0 ? true : false); } catch(IOException e) { LOG.error(e.getMessage(), e); } return commandResult; }