For a service with ConsiderStoppedOnProcessExit: false whose process exits before the connect succeeds, startService's process-exit branch (main.go, the if processExited { … return } block) only does releaseReservedResources — it does not stop the service or remove it from runningServices. With ConsiderStoppedOnProcessExit:false, monitorProcess's cleanup is also a no-op, so resourcesInUse leaks and a zombie RunningService remains, permanently blocking that resource. This is identical to the pre-branch behavior (verified against 70408c4), so it does not violate AC-13.3, but it is worth a follow-up.
For a service with ConsiderStoppedOnProcessExit: false whose process exits before the connect succeeds, startService's process-exit branch (main.go, the if processExited { … return } block) only does releaseReservedResources — it does not stop the service or remove it from runningServices. With ConsiderStoppedOnProcessExit:false, monitorProcess's cleanup is also a no-op, so resourcesInUse leaks and a zombie RunningService remains, permanently blocking that resource. This is identical to the pre-branch behavior (verified against 70408c4), so it does not violate AC-13.3, but it is worth a follow-up.