Path units having either PathExists=, PathExistsGlob=, or DirectoryNotEmpty= should 'want' the unit they trigger as long as the path-condition is met. That way, a triggered unit can have StopWhenUnneeded=true to be truly path-based activated.
For example, with foo.path specifying PathExists=/foo and foo.service having StopWhenUnneeded=true, the service should be started whenever /foo exists or comes into existence and stopped whenever it is deleted. Currently, foo.service is stopped immediately when it is started by foo.path because it is not needed (anymore).
Created attachment 111110 [details] [review]
implementation of the proposed logic
The patch works as desired on my system. It does not update the manpage.
Created attachment 112339 [details] [review]
implementation of the proposed logic (now with documentation)
Same as the previous patch, but with documentation included. The patch did not generate any interest on the mailing list.