Handle missing watch target at startup

* If the watch target doesn't exist at startup, find the nearest parent that
  does exist and watch that. When you see a change, check if the target now
  exists.  Only launch process once target exists.