code: public final void start() {
          if (!m_state.isInitialized()) {
              m_logger.warn("start(): Service has not been initialized -- ignoring");
          } else if (!m_state.isStarted()) {
              Thread startThread = new AsyncServiceStarter();
              startThread.start();
              if (m_startDelayMillis > 0) {
                  try {
                      startThread.join(m_startDelayMillis);
                  } catch (InterruptedException e) { }
              }
          }
      }
docs: Start this service. A warning is logged and this method is ignored if the service
  has not been initialized. It is ignored if the service has already been started.
  This method uses an asynchronous thread to call {@link #startService()} and adjust
  the service's state.
  
  @see #startService()