You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Thomas Orozco fb689766ca Add basic test harness 10 years ago
test Add basic test harness 10 years ago
.gitignore Rename to a name that isn't already taken 10 years ago
LICENSE Initial commit 10 years ago
Makefile Add basic test harness 10 years ago
README.md Improve README 10 years ago
config.mk Fixup style, makefile 10 years ago
tini.c Reap *all* children prior to exiting 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.

It's a very small file (10KB range). All Tini 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 just like you expect, consider increasing the verbosity level (up to 3):

tini -v   -- bash -c 'exit 1'
tini -vv  -- true
tini -vvv -- pwd