code: public static Process startAndWaitFor(ProcessBuilder processBuilder, long timeout, TimeUnit unit) throws CommandFailedException, CommandTimeoutException {
  		try {
  			Process proc = processBuilder.start();
  			waitFor(proc, timeout, unit);
  			return proc;
  		} catch (IOException e) {
  			throw new CommandFailedException(e);
  		}
  	}
docs: Starts a new process and invokes {@link #waitFor(Process, long, TimeUnit)}.
  
  @param processBuilder The process builder used to start the new process
  @param timeout Maximum time to wait
  @param unit Time unit of <code>timeout</code>
  @return The finished process.
  @throws CommandFailedException If an I/O error occurs when starting the process.
  @throws CommandTimeoutException Thrown in case of a timeout