Explore projects
Gobeginnerdevops
Process Supervisor
Process supervisor in Go (inspired by supervisord): starts/stops/restarts processes defined in config, with log routing and health checks.
5 steps
Project steps
- 01
Config YAML
programs.yaml: name, command, autostart, autorestart, stdout_logfile.
- 02
Process lifecycle
Start, stop (SIGTERM→SIGKILL with timeout), restart with delay.
- 03
Log routing
stdout/stderr of processes redirected to log files with rotation.
- 04
CLI control
supervisorctl-equivalent: start/stop/restart/status <name>.
- 05
Auto-restart
On unexpected crash, restart with exponential backoff (max 5 retries).
Recommended resources
Ready to build this?
Fork the repo on GitHub and start building. A mentor will review your code when you open a PR.
5 steps
Tech stack
Goos/execgopkg.in/yaml.v3cobra