code: private synchronized void start() {
          // only reschedule if monitor is still active (not in the process of being initialized or destroyed
          // don't schedule a task if there are no monitors or the monitorInterval was set to 0
          // don't schedule a task if the framework is stopping
          if (scheduledFuture == null
              && monitorState.get() == MonitorState.ACTIVE.ordinal()
              && !updateMonitors.isEmpty()
              && monitorInterval != 0
              && FrameworkState.isValid()) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(this, tc, "Scan task scheduled");
              }
              scheduledFuture = coreService.getScheduler().scheduleWithFixedDelay(this, monitorInterval, monitorInterval, monitorTimeUnit);
          }
      }
docs: Start monitoring the file collection