summaryrefslogtreecommitdiff
path: root/package/base-files/files/init.d/rcS
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-11-20 17:42:34 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2016-11-25 01:49:36 +0100
commitb0f23d1e562e753cb78a473fdade956a25cc337b (patch)
treefe4a5908d1e39e24ec6df66052e866ed72421a79 /package/base-files/files/init.d/rcS
parent49a817b44be5695a87f6b4c8eadef3bb0f9419f9 (diff)
finalize systemd as alternative init system
Most important is the fix in patch-src_journal_journald-server_c, which breaks startup of systemd-journald when code is compiled with -DNDEBUG. A lot of base-files reorganizing to only install required files on sysv systems.
Diffstat (limited to 'package/base-files/files/init.d/rcS')
-rwxr-xr-xpackage/base-files/files/init.d/rcS82
1 files changed, 82 insertions, 0 deletions
diff --git a/package/base-files/files/init.d/rcS b/package/base-files/files/init.d/rcS
new file mode 100755
index 000000000..bc27ed29c
--- /dev/null
+++ b/package/base-files/files/init.d/rcS
@@ -0,0 +1,82 @@
+#!/bin/sh
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin
+# disable kernel messages
+if [ -f /proc/sys/kernel/printk ];then
+ echo 0 > /proc/sys/kernel/printk
+fi
+ln -s /proc/self/fd/0 /dev/stdin
+ln -s /proc/self/fd/1 /dev/stdout
+ln -s /proc/self/fd/2 /dev/stderr
+: ${rcquiet=0}
+if [ $rcquiet -ne 1 ];then
+ echo "System initialization ..."
+fi
+
+# create some useful directories in tmpfs
+mkdir -p /var/log
+mkdir -p /var/run
+mkdir -p /var/tmp
+touch /var/log/lastlog
+touch /var/log/wtmp
+
+# start dynamic device node management
+[ -f /etc/init.d/rcdev ] && . /etc/init.d/rcdev
+
+# seed some random
+cat /etc/.rnd >/dev/urandom 2>&1
+
+# setup cfgfs
+[ -x /sbin/cfgfs ] && {
+ cfgfs setup
+ mount -o remount,ro /
+}
+
+# remount /tmp with smaller size
+size=$(cat /etc/tmpfs 2>/dev/null)
+[ -z $size ] && size=2048
+mount -o remount,nosuid,nodev,mode=1777,size=${size}k -t tmpfs tmpfs /tmp
+
+HOSTNAME=
+[[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname)
+HOSTNAME=${HOSTNAME%%.*}
+echo ${HOSTNAME:=openadk} >/proc/sys/kernel/hostname
+
+chown 0:0 /tmp; chmod 1777 /tmp
+
+if test x"$rcquiet" = x"0" && sh -n /etc/rc.conf >/dev/null 2>&1; then
+ . /etc/rc.conf
+ unset rcquiet
+ rcquiet=0
+else
+ unset rcquiet
+ rcquiet=1
+fi
+{
+ grep '^#INIT ' /etc/init.d/* | \
+ sort -nk2 | \
+ while read line; do
+ rcenabled=NO
+ rcname=${line%%:*}
+ rcname=${rcname##*/}
+ test x"$rcquiet" = x"0" && eval 'rcenabled=${'"${rcname}"':-NO}'
+ test x"$rcenabled" = x"NO" || echo -n "Starting ${rcname}... "
+ sh ${line%%:*} autostart
+ rc=$?
+ case $rcenabled:$rc in
+ (NO:*)
+ ;;
+ (*:0)
+ echo done.
+ ;;
+ (*:*)
+ echo "failed ($rc)."
+ ;;
+ esac
+ done
+} |tee /dev/stderr |logger -p 6 -t ''
+
+if [ $rcquiet -ne 1 ]; then
+ if [ -f /etc/rc.netinfo ]; then
+ . /etc/rc.netinfo
+ fi
+fi