michaelmelanson / michaelmelanson/panda-os
Service manager step 9: Service config files and boot integration test
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
Add service config files for built-in services (starting with terminal) and verify the system boots correctly with the new service manager replacing the hardcoded process spawning in `init`.
This is step 9 (final step) of the service manager implementation (#26). Depends on all previous steps.
## Desired behaviour
- Add `rootfs/config/services/terminal/config.toml` (and any other built-in services)
- Remove hardcoded process spawning from `init/src/main.rs`
- System boots using the service manager: reads configs, resolves dependencies, starts services
- Terminal launches and is functional as before
## Key files
- `rootfs/config/services/terminal/config.toml` — terminal service config
- `userspace/init/src/main.rs` — replace hardcoded spawns with service manager boot
- Initrd/tarfs packaging in `Makefile` — include config files
## Example terminal config
```toml
[service]
binary = "/initrd/terminal"
dependencies = []
restart = "always"
protocol = "console"
```
## Testing
- Boot integration test: system starts, terminal is running, user can interact
- Verify `svcctl list` shows terminal as running
- Verify `svcctl stop terminal` + `svcctl start terminal` works
- Verify terminal auto-restarts if killed (restart = "always")
- Regression: ensure all existing tests still pass
## Documentation
- Add example configs for each built-in service
- Create `docs/SERVICES.md` with complete documentation
- Update README with service manager overview
Part of #26
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with userspace/init/src/main.rs, rootfs/config/services/terminal/config.toml, and the Makefile packaging rules. Review the service manager work from steps 1–8, then run the existing tests and boot the system to check terminal startup, svcctl operations, restart behavior, and config inclusion. Done means the boot integration checks pass and the requested service examples, docs/SERVICES.md, and README update are present.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, documentation, operating-systems, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100