You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.preinit.d/20-services

50 lines
1.5 KiB

#!/usr/bin/env bash
#
# Initial script for Live operating system
# This script are launching before starting init from linux-live script.
# Current dir allways must be set to root (/)
# All system path must be relative, except initrd dirs
ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0
PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin
DEBUGMODE=no
. usr/lib/ublinux/functions
. usr/lib/ublinux/os-config
debug_mode "$0" "$@"
echo $SYSCONF | grep -q ^/ && SYSCONF=.$SYSCONF
SOURCE=${SYSCONF}/config; [ -f "${SOURCE}" ] && . ${SOURCE} 2>/dev/null
[ -z "$(cmdline_value servicesstart)" ] || SERVICESSTART=$(cmdline_value servicesstart)
[ -z "$(cmdline_value servicesnostart)" ] || SERVICESNOSTART=$(cmdline_value servicesnostart)
if [ ! -z "$SERVICESSTART$SERVICESNOSTART$SERVICESMASK$SERVICESUNMASK" ] ;then
mkdir -p proc
mount -o rbind /proc proc
ISSYSTEMD=$(readlink -fq usr/bin/init | grep "lib/systemd/systemd$")
for a in $(echo $SERVICESUNMASK,$SERVICESSTART | tr , " ") ;do
[ $ISSYSTEMD ] && chroot . systemctl unmask $a
done
for a in $(echo $SERVICESSTART | tr , " ") ;do
if [ $ISSYSTEMD ] ;then
chroot . systemctl enable $a || true
else
true
fi
done
for a in $(echo $SERVICESNOSTART | tr , " ") ;do
if [ $ISSYSTEMD ] ;then
chroot . systemctl disable $a || true
else
true
fi
done
for a in $(echo $SERVICESMASK | tr , " ") ;do
[ $ISSYSTEMD ] && chroot . systemctl disable $a
[ $ISSYSTEMD ] && chroot . systemctl mask $a
done
umount proc
fi