# yelp/dumb-init

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/yelp-dumb-init).**

7,291 stars · 353 forks · Python · MIT

## Links

- GitHub: https://github.com/Yelp/dumb-init
- Homepage: https://engineeringblog.yelp.com/2016/01/dumb-init-an-init-for-docker.html
- awesome-repositories: https://awesome-repositories.com/repository/yelp-dumb-init.md

## Topics

`c` `docker` `docker-container` `dumb` `init` `pid1` `unix`

## Description

dumb-init is a lightweight process supervisor and minimal init system designed to run as the primary process in a Linux container. It functions as a manager for the first process in a namespace, specifically handling the responsibilities of a Linux init system.

The project focuses on signal proxying and the reclamation of zombie processes. It captures incoming system signals and relays or translates them to child process groups to ensure graceful application shutdown and termination.

It manages the lifecycle of spawned applications by monitoring child processes and collecting terminated ones to prevent the system process table from filling up.

## Tags

### System Administration & Monitoring

- [Container Init Process](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/init-systems/container-init-process.md) — Acts as the PID 1 process within a container to handle Linux init system responsibilities.

### DevOps & Infrastructure

- [Container Signal Forwarders](https://awesome-repositories.com/f/devops-infrastructure/graceful-shutdowns/container-signal-forwarders.md) — Forwards termination and interrupt signals from the container runtime to managed services for clean deinitialization.
- [OCI Container Process Management](https://awesome-repositories.com/f/devops-infrastructure/oci-container-process-management.md) — Manages process lifecycles and signal propagation specifically for processes running within container runtimes.

### Operating Systems & Systems Programming

- [Zombie Process Reclamation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/process-lifecycle-orchestrators/child-process-management-helpers/zombie-process-reclamation.md) — Reclaims resources from terminated child processes to prevent the system process table from filling with zombies.
- [Process Signal Forwarding](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding.md) — Forwards received system signals to child processes to ensure correct response to termination requests. ([source](https://github.com/Yelp/dumb-init/blob/master/dumb-init.c))
- [Process Group Signaling](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding/process-group-signaling.md) — Relays system signals to the child process group to ensure all descendant processes shut down gracefully.
- [Process Lifecycle Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/process-lifecycle-orchestrators/process-lifecycle-managers.md) — Controls the execution state and lifecycle of child processes while acting as the first process in the namespace. ([source](https://github.com/Yelp/dumb-init/blob/master/dumb-init.c))
- [Signal Rewriting](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding/signal-rewriting.md) — Translates specific incoming signals into different types or drops them entirely before forwarding to child processes. ([source](https://github.com/Yelp/dumb-init/blob/master/README.md))

### Software Engineering & Architecture

- [Lifecycle Supervision](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/external-application-integrations/child-process-execution/lifecycle-supervision.md) — Monitors the lifecycle of spawned applications to ensure the supervisor exits once the child process completes.

### User Interface & Experience

- [Process Signal Translation](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-detectors/capacitive-touch-calibrators/touch-controller-drivers/touchpad-coordinate-retrieval/signal-translators/process-signal-translation.md) — Intercepts and converts specific incoming system signals into different types before delivery to the application.
