{"repo":"Yelp/dumb-init","free":true,"listed":false,"github":"https://github.com/Yelp/dumb-init","clone":"git clone https://github.com/Yelp/dumb-init.git","description":"A minimal init system for Linux containers","language":"Python","stars":7303,"topics":["docker","pid1","init","dumb","docker-container","unix","c"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"dumb-init ======== dumb-init is a simple process supervisor and init system designed to run as PID 1 inside minimal container environments (such as [Docker][docker]). It is deployed as a small, statically-linked binary written in C. Lightweight containers have popularized the idea of running a single process or service without normal init systems like [systemd][systemd] or [sysvinit][sysvinit]. However, omitting an init system often leads to incorrect handling of processes and signals, and can result in problems such as containers which can't be gracefully stopped, or leaking containers which should have been destroyed. dumb-init enables you to simply prefix your command with dumb-init . It acts as PID 1 and immediately spawns your command as a child process, taking care to properly handle and forward signals as they are received. Why you need an init system Normally, when you launch a Docker container, the process you're executing becomes PID 1, giving it the quirks and responsibilities that come with being the init system for the container. There are two common issues this presents: 1. In most cases, signals won't be handled properly. The Linux kernel applies special signal handling to processes which run as PID 1. When processes are sent a signal on a normal Linux system, the kernel will first check for any custom handlers the process has registered for that signal, and otherwise fall back to default behavior (for example, killing the process on SIGTERM ). However, if the ","default_branch":null,"files":null,"tree":[],"storefront":"/r/Yelp","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Yelp/dumb-init/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}