`boxinit` is a small program with init-like capabilities and is intended to be run as PID-1 process inside docker containers.

Features:

- relay signals to child processes: INT, HUP, TERM, USR1, USR2
- run a couple of child processes and exit if any of them returns, terminating all other children
- adopt orphaned processes and reap them when they finish (solve zombie processes issue)

boxinit takes arbitrary number of arguments each of them treated as a name of the command to run (without parameters). Use wrapper scripts and environment variables if you need to configure complex start commands.

Example:

Consider you want to run two services inside your container and finish container if any of those two services terminates.

Create start script for each service holding configuration parameters, etc:

	cat service1.sh
	#!/bin/sh
	exec /usr/bin/my-service1 --config=/etc/service1.conf

	cat service2.sh
	#!/bin/sh
	exec /usr/bin/my-service2 --foo=bar

Configure your `Dockerfile` as following:

	COPY service*.sh boxinit /init/
	CMD [ "/init/boxinit", "/init/service1.sh", "/init/service2.sh" ]

This way `boxinit` would be your PID-1 process inside container, would relay essential signals to both services and would exit if either of them finish, allowing you to restart/heal contaier.

`boxinit` is a small program with init-like capabilities and is intended to be run as PID-1 process inside docker containers.

Features:

- relay signals to child processes: INT, HUP, TERM, QUIT, USR1, USR2
- run a couple of child processes and exit if any of them returns, terminating all other children
- adopt orphaned processes and reap them when they finish (solve zombie processes issue)

boxinit takes arbitrary number of arguments each of them treated as a name of the command to run (without parameters). Use wrapper scripts and environment variables if you need to configure complex start commands.

Example:

Consider you want to run two services inside your container and finish container if any of those two services terminates.

Create start script for each service holding configuration parameters, etc:

	cat service1.sh
	#!/bin/sh
	exec /usr/bin/my-service1 --config=/etc/service1.conf

	cat service2.sh
	#!/bin/sh
	exec /usr/bin/my-service2 --foo=bar

Configure your `Dockerfile` as following:

	COPY service*.sh boxinit /init/
	CMD [ "/init/boxinit", "/init/service1.sh", "/init/service2.sh" ]

This way `boxinit` would be your PID-1 process inside container, would relay essential signals to both services and would exit if either of them finish, allowing you to restart/heal contaier.

Update readme (list QUIT signal)
Update readme (list QUIT signal)
