def start():
+    if not settings.CLEANUP_INTERVAL:
+        return
+
     # schedule the first call a bit later to improve performance at startup
     ioloop = tornado.ioloop.IOLoop.instance()
-    ioloop.add_timeout(datetime.timedelta(seconds=60), _run_process)
+    ioloop.add_timeout(datetime.timedelta(seconds=min(settings.CLEANUP_INTERVAL, 60)), _run_process)
 
 
 def stop():
 
             continue # only cleanup movies for cameras with movies enabled
 
         preserve_moment = datetime.datetime.now() - datetime.timedelta(days=preserve_media)
-            
+
         target_dir = camera_config.get('target_dir')
+        # create a sentinel file to make sure the target dir is never removed
+        open(os.path.join(target_dir, '.keep'), 'w').close()
+
         _remove_older_files(target_dir, preserve_moment, exts=exts)