---
title: Hello World
---
Minimal systemg service.
```yaml
version: "2"
logs:
sink: file
max_bytes: 10485760
max_files: 3
status:
snapshot_mode: summary
snapshot_interval_secs: 5
services:
counter:
command: "sh counter.sh"
```
```bash
i=1
while true; do
echo "Count: $i"
i=$((i + 1))
sleep 1
done
```
```bash
$ sysg start
$ sysg logs --service counter
$ sysg stop
```
You'll see:
```
Count: 1
Count: 2
Count: 3
```
The example keeps `logs.sink: file` explicit so `sysg logs` works immediately.
For high-volume services, use `logs.sink: none` and rely on your normal logging
pipeline.
`status.snapshot_mode: summary` keeps status and inspect reads inexpensive by
reading current persisted state without detailed runtime process collection.
## Next steps
Add a restart policy to handle crashes:
```yaml
version: "2"
logs:
sink: file
max_bytes: 10485760
max_files: 3
status:
snapshot_mode: summary
snapshot_interval_secs: 5
services:
counter:
command: "sh counter.sh"
restart_policy: "on-failure"
max_restarts: 5
backoff: "5s"
```