// the find
mojombo/god
Ruby process monitor
God is a Ruby process monitor that watches your daemons and restarts them based on configurable conditions — CPU, memory, HTTP health checks, socket responses, and more. It predates systemd dominance and was the go-to solution for Rails shops around 2008–2015. Today it's essentially a museum piece kept alive by legacy deployments.
The Ruby DSL config is genuinely readable — you can express complex watch/condition/behavior chains in plain code without fighting a YAML schema. Native kqueue (BSD/macOS) and netlink (Linux) event handlers mean it's not purely polling-based. The condition system is extensible — you can drop in a custom condition class and it just works. Notification contacts cover a surprisingly wide surface: Slack, webhooks, Sensu, statsd, email — useful if you're already on an older monitoring stack.
This is a zombie project: the last meaningful development was circa 2016, and the 2024 push is almost certainly a dependency bump or doc fix, not active maintenance. On any modern Linux deployment you should just use systemd units, which gives you the same restart behavior with better integration, journald logging, and no Ruby runtime dependency. The config-as-Ruby-script approach that felt clever in 2009 is now a footgun — a syntax error in your config silently kills monitoring. No container awareness whatsoever; if you're running anything in Docker or Kubernetes, this tool has nothing to offer you.