code: public void stopOpera() throws OperaRunnerException {
      assertLauncherAlive();
  
      if (!isOperaRunning()) {
        return;
      }
  
      try {
        LauncherStopRequest.Builder request = LauncherStopRequest.newBuilder();
  
        ResponseEncapsulation res = protocol.sendRequest(
            MessageType.MSG_STOP, request.build().toByteArray()
        );
  
        if (handleStatusMessage(res.getResponse()) == StatusType.RUNNING) {
          throw new IOException("launcher unable to stop binary");
        }
      } catch (IOException e) {
        throw new OperaRunnerException("Could not stop Opera: " + e.getMessage());
      }
    }
docs: {@inheritDoc}
  
  @throws OperaRunnerException if launcher is shut down or not running