code: public synchronized void start() throws IOException {
      if (running) {
        throw new IllegalStateException("Monitor is already running");
      }
      for (final PathAlterationObserver observer : observers) {
        observer.initialize();
      }
  
      if (interval > 0) {
          running = true;
          this.executionResult = executor.scheduleWithFixedDelay(this, initialDelay, interval, TimeUnit.MILLISECONDS);
      } else {
          LOGGER.info("Not starting due to non-positive scheduling interval:" + interval);
      }
    }
docs: Start monitoring.
  @throws IOException if an error occurs initializing the observer