文件名称:dumb-init:Linux容器的最小初始化系统
文件大小:38KB
文件格式:ZIP
更新时间:2024-02-21 15:42:22
c docker unix docker-container init
哑初始化 dumb-init是一个简单的流程管理器和初始化系统,旨在在最小的容器环境(例如 )中作为PID 1运行。 它被部署为用C编写的小型静态链接二进制文件。 轻量级容器已经普及了运行单个进程或服务而无需使用诸如或类的常规初始化系统的想法。 但是,省略初始化系统通常会导致错误处理过程和信号,并可能导致出现问题,例如无法正常停止的容器或泄漏本应被破坏的容器。 dumb-init使您可以简单地在命令前加上dumb-init 。 它充当PID 1,并立即以子进程的形式生成您的命令,注意在接收到信号时正确处理和转发它们。 为什么需要初始化系统 通常,当您启动Docker容器时,您正在执行的进程将成为PID 1,从而赋予它作为容器的初始化系统所伴随的怪癖和责任。 存在两个常见问题: 在大多数情况下,信号将无法正确处理。 Linux内核将特殊信号处理应用于以PID 1运行的进程。 在正常Linux系统上向进程发送信号时,内核将首先检查该进程已针对该信号注册的任何自定义处理程序,否则将恢复为默认行为(例如,在SIGTERM上终止该进程)。 但是,如果接收信号的进程为PID 1,则
【文件预览】:
dumb-init-master
----MANIFEST.in(54B)
----.travis.yml(653B)
----requirements-dev.txt(40B)
----VERSION.h(200B)
----pytest.ini(21B)
----testing()
--------__init__.py(3KB)
--------print_signals.py(1KB)
----Dockerfile(924B)
----tests()
--------cwd_test.py(796B)
--------exit_status_test.py(1KB)
--------conftest.py(1KB)
--------__init__.py(0B)
--------tty_test.py(4KB)
--------shell_background_test.py(2KB)
--------test-zombies(623B)
--------cli_test.py(6KB)
--------proxies_signals_test.py(4KB)
--------child_processes_test.py(4KB)
----tox.ini(511B)
----ci()
--------docker-tox-test(155B)
--------docker-python-test(220B)
--------artifact-upload(701B)
--------docker-deb-test(162B)
--------docker(380B)
--------gcov-build(157B)
--------gcov-report(128B)
----LICENSE(1KB)
----CONTRIBUTING.md(2KB)
----debian()
--------control(1KB)
--------docs(8B)
--------changelog(6KB)
--------compat(2B)
--------install(20B)
--------copyright(1KB)
--------clean(26B)
--------rules(691B)
--------.gitignore(86B)
--------lintian-overrides(43B)
--------manpages(19B)
--------source()
--------help2man(155B)
----VERSION(6B)
----setup.py(4KB)
----.gitignore(92B)
----circle.yml(471B)
----Makefile(2KB)
----.dockerignore(10B)
----README.md(12KB)
----dumb-init.c(11KB)
----.pre-commit-config.yaml(1KB)