Eva
Note: this is just a toy project. Use at your own peril.
Lightweight, batteries-included process monitor.
Features
- Capture
stdout
andstderr
output - Capture
syslog
calls - Structured log SQLite database
Planned features
- Restart policies
- Full text search
- Email alerts
Maybe features?
- HTTP API for starting/stopping services
- Service dependencies (A depends on B)
Building
- Run
gcc -shared -fPIC src/stub.c -o libstub.so
- Run
cargo build
- Profit!
Service definition
In eva.ini
:
[SERVICE_NAME]
exec=/path/to/executable
env_foo=value
keepalive=true
...
Forwarding environment variables
You have two options:
- Run
EVA__SERVICE_NAME__VAR__=VAL ./eva
- Set
env__VAR=VAL
ineva.ini
Note that (1) overrides (2).
Todo
- Also store PID (look at procinfo)
- Live process memory usage, etc.
- Email alerts (SendGrid, MailChimp, ... ?)