Attempt at making init scripts container aware

This commit is contained in:
2017-11-26 17:09:27 -06:00
parent f977ad5793
commit 008c9f186a
10 changed files with 60 additions and 40 deletions

View File

@@ -17,7 +17,7 @@ DESC = This package supplies the base system init scripts for sysvinit
ARCHIVE := '' ARCHIVE := ''
SRCDIR := $(PWD)/SRC/initscripts SRCDIR := $(PWD)/SRC/initscripts
PATCHDIR := $(PWD)/SRC/patches PATCHDIR := $(PWD)/SRC/patches
VERSION := 1.2-0 VERSION := 1.3-0
include /usr/share/snap/Makefile.snaplinux include /usr/share/snap/Makefile.snaplinux

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -e
@@ -7,25 +7,22 @@ case $1 in
exit 0 exit 0
;; ;;
postinst) postinst)
if [[ ${TARGET} ]]; then update-rc required
chroot ${TARGET} update-rc required
else if [ ! -f /etc/fstab ]; then
update-rc required cp /usr/share/initscripts/fstab /etc/fstab
fi fi
if [ ! -f ${TARGET}/etc/modules.conf ]; then if [ ! -f /etc/modules.conf ]; then
cp ${TARGET}/usr/share/initscripts/modules.conf \ cp /usr/share/initscripts/modules.conf /etc/modules.conf
${TARGET}/etc/modules.conf
fi fi
if [ ! -f ${TARGET}/etc/default/halt ]; then if [ ! -f /etc/default/halt ]; then
cp ${TARGET}/usr/share/initscripts/halt.default \ cp /usr/share/initscripts/halt.default /etc/default/halt
${TARGET}/etc/default/halt
fi fi
if [ ! -f ${TARGET}/etc/default/rcS ]; then if [ ! -f /etc/default/rcS ]; then
cp ${TARGET}/usr/share/initscripts/rcS.default \ cp /usr/share/initscripts/rcS.default /etc/default/rcS
${TARGET}/etc/default/rcS
fi fi
;; ;;
prerm) prerm)

View File

@@ -22,6 +22,8 @@ files:
install -m 755 init.d/swap $(DESTDIR)/etc/init.d/swap install -m 755 init.d/swap $(DESTDIR)/etc/init.d/swap
install -m 755 init.d/sysctl $(DESTDIR)/etc/init.d/sysctl install -m 755 init.d/sysctl $(DESTDIR)/etc/init.d/sysctl
install -m 755 init-functions $(DESTDIR)/lib/lsb/init-functions install -m 755 init-functions $(DESTDIR)/lib/lsb/init-functions
install -m 644 fstab \
$(DESTDIR)/usr/share/initscripts/fstab
install -m 644 halt.default \ install -m 644 halt.default \
$(DESTDIR)/usr/share/initscripts/halt.default $(DESTDIR)/usr/share/initscripts/halt.default
install -m 644 modules.conf \ install -m 644 modules.conf \

4
SRC/initscripts/fstab Normal file
View File

@@ -0,0 +1,4 @@
#
# /etc/fstab - file system mount definitions
#
# <file system> <mount point> <type> <options> <dump> <fsck>

View File

@@ -1,4 +1,14 @@
#!/bin/sh # /lib/lsb/init-functions - shell functions and variables for init scripts
#
# This sets some environment variables that init scripts can use
# to determine if we're running in a container
#
# Most likely just checking for the presence of $container would
# be enough
#
export $(sed 's/\x0/\n/g' < /proc/1/environ|grep -ia '^container\|^LXC')
COL52="\\033[52G" COL52="\\033[52G"
@@ -54,19 +64,19 @@ log_init_msg() {
} }
log_failure_msg() { log_failure_msg() {
echo -e "$COL52[ FAIL ]" echo "$COL52[ FAIL ]"
return return
} }
log_success_msg() { log_success_msg() {
echo -e "$COL52[ OK ]" echo "$COL52[ OK ]"
return return
} }
log_warning_msg() { log_warning_msg() {
echo -e "$COL52[ WARN ]" echo "$COL52[ WARN ]"
return return
} }

View File

@@ -13,6 +13,8 @@
. /lib/lsb/init-functions . /lib/lsb/init-functions
[ -z $container ] || exit 0
case "$1" in case "$1" in
start) start)
if [ -f /fastboot ] || grep -qwi 'fastboot' /proc/cmdline; then if [ -f /fastboot ] || grep -qwi 'fastboot' /proc/cmdline; then

View File

@@ -16,6 +16,8 @@
. /lib/lsb/init-functions . /lib/lsb/init-functions
[ -z $container ] || exit 0
case "$UTC" in case "$UTC" in
0|n|no) 0|n|no)
ZONE="--localtime" ZONE="--localtime"

View File

@@ -17,6 +17,8 @@
. /lib/lsb/init-functions . /lib/lsb/init-functions
[ -z $container ] || exit 0
case "$1" in case "$1" in
start) start)
log_init_msg "Remounting root file system in read-write mode" log_init_msg "Remounting root file system in read-write mode"

View File

@@ -80,14 +80,6 @@ mountrun () {
/run || return 1 /run || return 1
fi fi
mkdir -p /run/lock /run/shm || return 1
chmod 1777 /run/shm || return 1
if grep -q '^utmp:' /etc/group; then
chmod 664 /run/utmp >> /run/utmp
chgrp utmp /run/utmp
fi
return 0 return 0
} }
@@ -105,12 +97,21 @@ case "$1" in
start|restart) start|restart)
log_init_msg "Mounting virtual file systems" log_init_msg "Mounting virtual file systems"
for dir in dev pts proc run sys; do if [ -z $container ]; then
mount$dir || error=1 for dir in dev pts proc run sys; do
done mount$dir || error=1
done
fi
mkdir -p /run/lock /run/shm || error=1
chmod 1777 /run/shm || error=1
ln -sfn /run/shm /dev/shm ln -sfn /run/shm /dev/shm
if grep -q '^utmp:' /etc/group; then
chmod 664 /run/utmp >> /run/utmp
chgrp utmp /run/utmp
fi
[ -z $error ] && log_success_msg || log_failure_msg [ -z $error ] && log_success_msg || log_failure_msg
;; ;;
status) status)

View File

@@ -6,16 +6,16 @@ trap "" INT QUIT TSTP
print_snap() { print_snap() {
echo " echo "
_ _ _ _
| (_) | (_)
___ _ __ __ _ _ __ | |_ _ __ _ _ _ _ ___ _ __ __ _ _ __ | |_ _ __ _ _ _ _
/ __| '_ \ / _' | '_ \| | | '_ \| | | \ \/ / / __| '_ \ / _' | '_ \| | | '_ \| | | \ \/ /
\__ \ | | | (_| | |_) | | | | | | |_| |> < \__ \ | | | (_| | |_) | | | | | | |_| |> <
|___/_| |_|\__,_| .__/|_|_|_| |_|\__,_/_/\_\ |___/_| |_|\__,_| .__/|_|_|_| |_|\__,_/_/\_\
| | | |
|_| |_|
A GNU/Linux System A GNU/Linux System
" "
} }
@@ -26,7 +26,7 @@ case "$1" in
set -a set -a
[ -r /etc/default/rcS ] && . /etc/default/rcS [ -r /etc/default/rcS ] && . /etc/default/rcS
set +a set +a
dmesg -n "${LOGLEVEL:-7}" [ -z $container ] && dmesg -n "${LOGLEVEL:-7}"
print_snap print_snap
fi fi