mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-21 10:09:07 +00:00
copy setsid to setsidu so it does not get overwritten by busybox when used in init, and ensure inittab is clean
Signed-off-by: Avi Deitcher <avi@deitcher.net>
This commit is contained in:
parent
fd00f19c59
commit
42bf54de28
@ -9,6 +9,17 @@ RUN apk add --no-cache --initdb -p /out \
|
|||||||
util-linux \
|
util-linux \
|
||||||
&& true
|
&& true
|
||||||
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
|
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
|
||||||
|
#
|
||||||
|
# We require a version of `setsid(1)` which supports the `-w`
|
||||||
|
# option, which is not available in all implementations (e.g. the
|
||||||
|
# `busybox` implementation does not support it). When this is run
|
||||||
|
# as part of a LinuxKit `init` image (rather than as a standalone
|
||||||
|
# container) we cannot guarantee which version of `setsid` will
|
||||||
|
# be present once the layers are combined, so we take a copy of
|
||||||
|
# our own, known good, version for use later.
|
||||||
|
RUN cp /out/usr/bin/setsid /out/usr/bin/setsid.getty
|
||||||
|
# we really do not want a rogue inittab here
|
||||||
|
RUN rm -rf /out/etc/inittab
|
||||||
|
|
||||||
FROM scratch
|
FROM scratch
|
||||||
ENTRYPOINT ["/sbin/tini","-s","-v","--"]
|
ENTRYPOINT ["/sbin/tini","-s","-v","--"]
|
||||||
|
@ -7,12 +7,11 @@ infinite_loop() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# run getty on all known consoles - except those already in inittab
|
# run getty on all known consoles
|
||||||
start_getty() {
|
start_getty() {
|
||||||
tty=${1%,*}
|
tty=${1%,*}
|
||||||
speed=${1#*,}
|
speed=${1#*,}
|
||||||
inittab="$2"
|
securetty="$2"
|
||||||
securetty="$3"
|
|
||||||
line=
|
line=
|
||||||
term="linux"
|
term="linux"
|
||||||
[ "$speed" = "$1" ] && speed=115200
|
[ "$speed" = "$1" ] && speed=115200
|
||||||
@ -39,7 +38,7 @@ start_getty() {
|
|||||||
echo "$tty" >> "$securetty"
|
echo "$tty" >> "$securetty"
|
||||||
fi
|
fi
|
||||||
# respawn forever
|
# respawn forever
|
||||||
infinite_loop setsid -w /sbin/getty $loginargs $line $speed $tty $term &
|
infinite_loop setsid.getty -w /sbin/getty $loginargs $line $speed $tty $term &
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if we have /etc/getty.shadow
|
# check if we have /etc/getty.shadow
|
||||||
@ -53,7 +52,7 @@ fi
|
|||||||
for opt in $(cat /proc/cmdline); do
|
for opt in $(cat /proc/cmdline); do
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
console=*)
|
console=*)
|
||||||
start_getty ${opt#console=} /etc/inittab /etc/securetty
|
start_getty ${opt#console=} /etc/securetty
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user