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"]