protected boolean needToStart() {
    synchronized (stateChange) {
      if (state == RUNNING || state == STARTING) {
        return false;

      } else {
        setState(STARTING);
        return true;
      }
    }
  }
Returns whether or not this managed system member needs to be started. If this member is
started or is starting, then it does not need to be started. Otherwise, it will atomically
place this member in the {@link #STARTING} state. See bug 32455.
geode-core/src/main/java/org/apache/geode/admin/internal/ManagedSystemMemberImpl.java