# krallin/tini

**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/krallin-tini).**

11,129 stars · 544 forks · C · MIT

## Links

- GitHub: https://github.com/krallin/tini
- awesome-repositories: https://awesome-repositories.com/repository/krallin-tini.md

## Topics

`c` `docker` `init` `init-system` `linux`

## Description

Tini is a lightweight process management tool designed to act as the entrypoint for OCI compliant containers. It functions as a minimal init process that manages the lifecycle of a primary child process, preventing the root process from ignoring critical termination signals.

The project focuses on signal proxying and zombie process reaping. It forwards system signals from the container runtime to child processes and process groups to ensure graceful shutdowns. Additionally, it automatically collects terminated child processes to prevent the process table from filling with defunct entries.

Tini also provides process supervision and signal coordination, including the ability to trigger shutdowns when a parent process terminates. It includes a mechanism to translate specific non-zero child process return codes into success codes for external monitoring and orchestration systems.

## 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 root init process within a container to manage the lifecycle of a primary child process.
- [Process Supervision](https://awesome-repositories.com/f/system-administration-monitoring/process-supervision.md) — Manages the lifecycle of a primary child process while acting as the root init process within the container.

### DevOps & Infrastructure

- [Container Entrypoint Execution](https://awesome-repositories.com/f/devops-infrastructure/container-entrypoint-execution.md) — Acts as a lightweight wrapper for OCI compliant containers that prevents the primary process from ignoring critical termination signals.
- [OCI Container Process Management](https://awesome-repositories.com/f/devops-infrastructure/oci-container-process-management.md) — Manages the primary process in an OCI compliant container to prevent PID 1 from ignoring critical termination signals.
- [Graceful Shutdowns](https://awesome-repositories.com/f/devops-infrastructure/graceful-shutdowns.md) — Forwards system signals from the container runtime to child processes to ensure applications terminate cleanly and correctly.

### 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) — Continuously monitors and collects terminated child processes to prevent the process table from filling with defunct entries.
- [Process Signal Forwarding](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding.md) — Intercepts and propagates system signals from the container runtime to child processes to ensure graceful application shutdowns.
- [Recursive Process Termination](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/recursive-process-termination.md) — Sends signals to all processes within the child group to terminate deep process trees and ensure no descendants linger. ([source](https://github.com/krallin/tini#readme))
- [Parent Death Detection](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding/parent-death-detection.md) — Detects when the parent process terminates and triggers a signal to coordinate the shutdown of child processes.
- [Process Group Signaling](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding/process-group-signaling.md) — Sends signals to an entire process group rather than a single PID to terminate deep process hierarchies.
- [Parent Termination Detection](https://awesome-repositories.com/f/operating-systems-systems-programming/process-termination-signals/parent-termination-detection.md) — Detects when the parent process terminates and triggers a specific signal to coordinate the shutdown of children.
