system: add tini as init system

Tini is a special-purpose init system, aimed at containers.

Add it to the choice of init systems.

tini does not require much, so we re-use the default "none" skeleton.

Note that tini is no longer selectable on its own, which it used to be.
This change will require that people using tini be careful when
upgrading, though, but that will be very easily caught, as the
containers would no longer start at all.

We could add a comment stating why, but no other init system has such a
comment, so adding one for tini alone would be weird, so we don't add
one.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
This commit is contained in:
Yann E. MORIN 2024-08-30 22:26:21 +02:00
parent 07c18fbc9e
commit 24cac9c4e6
2 changed files with 17 additions and 0 deletions

View file

@ -1,6 +1,7 @@
config BR2_PACKAGE_TINI
bool "tini"
depends on BR2_USE_MMU # fork()
depends on BR2_INIT_TINI
help
tini is a simple but valid init binary to
act as PID 1 for containers.

View file

@ -149,6 +149,22 @@ comment "systemd highly recommends Linux >= 4.15"
comment "Special purpose (read help)"
config BR2_INIT_TINI
bool "tini"
depends on BR2_USE_MMU # tini
select BR2_PACKAGE_TINI
select BR2_PACKAGE_SKELETON_INIT_NONE if BR2_ROOTFS_SKELETON_DEFAULT
help
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.
https://github.com/krallin/tini
config BR2_INIT_NONE
bool "Custom (none)"
select BR2_PACKAGE_SKELETON_INIT_NONE if BR2_ROOTFS_SKELETON_DEFAULT