docs: public void stop(long timeout, TimeUnit timeoutUnit) {
      if (lifecycle.tryToMoveTo(Lifecycle.State.STOPPING)) {
        stopGracefully(timeout, timeoutUnit);
        if (process != null && process.isAlive()) {
          LOG.info("{} failed to stop in a timely fashion. Killing it.", processId.getKey());
        }
        // enforce stop and clean-up even if process has been gracefully stopped
        stopForcibly();
      } else {
        // already stopping or stopped
        waitForDown();
      }
    }