docs: public void close() throws IOException {
  		Throwable throwable = null;
  
  		try {
  			socket.close();
  			sender.close();
  			receiver.close();
  		} catch (Throwable t) {
  			throwable = t;
  		}
  
  		try {
  			destroyProcess(process);
  		} catch (Throwable t) {
  			throwable = ExceptionUtils.firstOrSuppressed(t, throwable);
  		}
  
  		ShutdownHookUtil.removeShutdownHook(shutdownThread, getClass().getSimpleName(), LOG);
  
  		ExceptionUtils.tryRethrowIOException(throwable);
  	}