Thomas Orozco
c35496874c
|
10 years ago | |
---|---|---|
test | 10 years ago | |
.dockerignore | 10 years ago | |
.gitignore | 10 years ago | |
Dockerfile | 10 years ago | |
LICENSE | 10 years ago | |
Makefile | 10 years ago | |
README.md | 10 years ago | |
config.mk | 10 years ago | |
ddist.sh | 10 years ago | |
dtest.sh | 10 years ago | |
tini.c | 10 years ago |
README.md
Tini - A tiny but valid init
for containers
Tini is the simplest init
you could think of.
All Tini does is spawn a single child (Tini is meant to be run in a container), and wait for it to exit all the while reaping zombies and performing signal forwarding.
Using Tini
Add Tini to your container, and make it executable.
Tini is a very small file (in the 10KB range), and all it depends on is libc
.
Once you've added Tini, use it like so:
tini -- your_program and its args
Note that you can skip the --
above if your program only accepts
positional arguments, but it's best to get used to using it.
If you try to use positional arguments with Tini without using --
, you'll
get an error similar to:
./tini: invalid option -- 'c'
Understanding Tini
After spawning your process, Tini will wait for signals and forward those
to the child process (except for SIGCHLD
and SIGKILL
, of course).
Besides, Tini will reap potential zombie processes every second.
Debugging
If something isn't working just like you expect, consider increasing the verbosity level (up to 4):
tini -v -- bash -c 'exit 1'
tini -vv -- true
tini -vvv -- pwd
tini -vvvv -- ls