integrate with busybox init system

busybox's init uses /etc/inittab for configuration just like sysvinit,
however it doesn't use any runlevels.

the tty part of inittab is appended to "/dev/", and it becomes connected
to the stdout of the spawned process

Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
This commit is contained in:
Petros Angelatos 2016-07-06 01:45:32 -07:00
parent 488ca41621
commit eee400f39f
4 changed files with 33 additions and 28 deletions

View File

@ -1,45 +1,22 @@
#!/bin/sh
set -e
set -o errexit
[ -d /dev/net ] ||
mkdir -p /dev/net
[ -c /dev/net/tun ] ||
mknod /dev/net/tun c 10 200
cd /app
mkdir -p /var/log/supervisor && touch /var/log/supervisor/supervisord.log
mkdir -p /var/run/resin
mount -t tmpfs -o size=1m tmpfs /var/run/resin
if [ -z "$GOSUPER_SOCKET" ]; then
export GOSUPER_SOCKET=/var/run/resin/gosuper.sock
fi
if [ -z "$DOCKER_SOCKET" ]; then
export DOCKER_SOCKET=/run/docker.sock
fi
if [ -z "$HOST_PROC" ]; then
export HOST_PROC=/mnt/root/proc
fi
export DBUS_SYSTEM_BUS_ADDRESS="unix:path=/mnt/root/run/dbus/system_bus_socket"
# If DOCKER_ROOT isn't set then default it
if [ -z "${DOCKER_ROOT}" ]; then
DOCKER_ROOT=/mnt/root/var/lib/rce
fi
# Mount the DOCKER_ROOT path equivalent in the container fs
DOCKER_LIB_PATH=${DOCKER_ROOT#/mnt/root}
if [ ! -d "${DOCKER_LIB_PATH}" ]; then
ln -s "${DOCKER_ROOT}" "${DOCKER_LIB_PATH}"
fi
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
supervisorctl start resin-supervisor
supervisorctl start go-supervisor
tail -F \
/var/log/supervisor/supervisord.log \
/var/log/resin_supervisor_stdout.log

7
inittab Normal file
View File

@ -0,0 +1,7 @@
# busybox inittab
# format: tty:ignored:action:command
stdout::sysinit:/usr/src/app/entry.sh
stdout::respawn:/usr/src/app/run.sh node /usr/src/app/src/app.js
stdout::respawn:/usr/src/app/run.sh /usr/src/app/gosuper

View File

@ -3,8 +3,7 @@
"version": "2.1.1",
"scripts": {
"start": "./entry.sh",
"lint": "resin-lint src/",
"start": "./entry.sh"
"lint": "resin-lint src/"
},
"dependencies": {
"JSONStream": "^1.1.2",

22
run.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
if [ -z "$GOSUPER_SOCKET" ]; then
export GOSUPER_SOCKET=/var/run/resin/gosuper.sock
fi
if [ -z "$DOCKER_SOCKET" ]; then
export DOCKER_SOCKET=/run/docker.sock
fi
if [ -z "$HOST_PROC" ]; then
export HOST_PROC=/mnt/root/proc
fi
export DBUS_SYSTEM_BUS_ADDRESS="unix:path=/mnt/root/run/dbus/system_bus_socket"
# If DOCKER_ROOT isn't set then default it
if [ -z "${DOCKER_ROOT}" ]; then
DOCKER_ROOT=/mnt/root/var/lib/rce
fi
exec $@