Supervisor
Noun · Development
Definitions
A process whose job is to start, monitor, and restart other processes when they fail. The idea is central to Erlang and its OTP framework, where applications are built as supervision trees: supervisors watch worker processes and other supervisors, and when a child crashes, the supervisor restarts it according to a strategy, such as one_for_one to restart only the failed child, one_for_all to restart all its children, or rest_for_one to restart the failed child and those started after it. A restart intensity limit stops endless restart loops by escalating the failure to the next supervisor up. This structure is what makes Erlang's let-it-crash philosophy practical: rather than defending against every error inline, code fails fast and returns to a known good state. The same role exists in Unix operations through supervisord, daemontools, runit, and systemd's Restart= setting, which keep long-running services alive.
In plain English: A watchdog program that keeps an eye on other programs and restarts them if they crash, so the system stays up.
Example: "The Erlang supervisor restarts the worker process with a clean state whenever it crashes."