Init Awesome
supervisor
info
- 系统级 supervisor
- 一般有 init 能力
 - 除了进程可能还会维护其他资源 - 例如: socket
 
 - 进程级 supervisor
- 只关心进程死活
 
 
- supervisor ~= process manager/monitor
 - supervisor
- size: 4161536
 - Python
 - https://pkgs.alpinelinux.org/package/edge/main/x86_64/supervisor
 
 - runit
 - systemd
- Python
 
 - initd
 - upstart
 - tini
- https://github.com/krallin/tini
 - size: 40960
 - docker 1.13 后内建
 - 主要用于处理僵尸集成和信号量处理
 
 - dump-init
 - openrc
- C+Shell
 
 - Gentoo Comparison of init systems
 - OpenRC to systemd Cheatsheet
 
Pure Init
- tinit
 - dump-init
 - troglobit/finit
 
docker
- tinit - 如果使用单个进程
 - 如果要允许多个服务,选择 s6 或 runit
 - docker 内置 tini - 
--init - Yelp/dumb-init
 - krallin/tini
 - Choosing init for multi-process containers
 
apk add dumb-init
/usr/bin/dumb-init --
apk add tini
/sbin/tini --
最简单的 多进程 init
entrypoint.sh
#!/usr/bin/env bash
set -e
program1 &
program2 &
wait -n
ENTRYPOINT ["/bin/tini", "--", "entrypoint.sh"]