48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
# Service Manager Examples
|
|
|
|
This directory contains examples demonstrating the usage of the `sal-service-manager` crate.
|
|
|
|
## Running Examples
|
|
|
|
To run any example, use the following command structure from the `service_manager` crate's root directory:
|
|
|
|
```sh
|
|
cargo run --example <EXAMPLE_NAME>
|
|
```
|
|
|
|
---
|
|
|
|
### 1. `simple_service`
|
|
|
|
This example demonstrates the ideal, clean lifecycle of a service using the separated `create` and `start` steps.
|
|
|
|
**Behavior:**
|
|
1. Creates a new service definition.
|
|
2. Starts the newly created service.
|
|
3. Checks its status to confirm it's running.
|
|
4. Stops the service.
|
|
5. Checks its status again to confirm it's stopped.
|
|
6. Removes the service definition.
|
|
|
|
**Run it:**
|
|
```sh
|
|
cargo run --example simple_service
|
|
```
|
|
|
|
### 2. `service_spaghetti`
|
|
|
|
This example demonstrates how the service manager handles "messy" or improper sequences of operations, showcasing its error handling and robustness.
|
|
|
|
**Behavior:**
|
|
1. Creates a service.
|
|
2. Starts the service.
|
|
3. Tries to start the **same service again** (which should fail as it's already running).
|
|
4. Removes the service **without stopping it first** (the manager should handle this gracefully).
|
|
5. Tries to stop the **already removed** service (which should fail).
|
|
6. Tries to remove the service **again** (which should also fail).
|
|
|
|
**Run it:**
|
|
```sh
|
|
cargo run --example service_spaghetti
|
|
```
|