A service can have a dependency on a service, a service instance, or a file. Service dependencies define relationships between services.
Dependency relationships determine when a service starts and automatically stops. When dependencies of an enabled service are not satisfied, the service is in the offline state. When dependencies of an enabled service are satisfied, the service is started. If the service start is successful, the service transitions to the online state.
Service dependencies are reevaluated as services transition through states. Service dependencies that are satisfied can later become not satisfied. File dependencies are evaluated only one time.
Dependencies can be required or optional. Service dependencies can be required to be running or disabled. A dependent service can be configured to restart or not when one of its service dependencies is stopped or refreshed.
Dependency relationships allow the following capabilities:
Scalable and reproducible initialization processes
Faster system startup on machines that have parallel capabilities by starting independent services in parallel
Precise fault containment and fault recovery by restarting only services that are directly affected by a fault, and restarting those services in correct dependency order