aboutsummaryrefslogtreecommitdiff
path: root/sh.Linux/init.sh
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-02-27 20:29:32 +0000
committerRoy Marples <roy@marples.name>2008-02-27 20:29:32 +0000
commitc2648ca5f539c450b27d35c7c0a3d41c6e193d8f (patch)
tree1de8b046bd8c1029165670c697eace4c89ece8f5 /sh.Linux/init.sh
parent143570689bc93c68fa83c3eb56d622b707ec0e18 (diff)
Makefile SH variable now tweaks the default shell used by our scripts.
Diffstat (limited to 'sh.Linux/init.sh')
-rwxr-xr-xsh.Linux/init.sh189
1 files changed, 0 insertions, 189 deletions
diff --git a/sh.Linux/init.sh b/sh.Linux/init.sh
deleted file mode 100755
index c006d5f1..00000000
--- a/sh.Linux/init.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/sh
-# Copyright 1999-2007 Gentoo Foundation
-# Copyright 2007-2008 Roy Marples <roy@marples.name>
-# All rights reserved. Released under the 2-clause BSD license.
-
-# This basically mounts $RC_SVCDIR as a ramdisk, but preserving its content
-# which allows us to store service state and generate dependencies if needed.
-# The tricky part is finding something our kernel supports
-# tmpfs and ramfs are easy, so force one or the other.
-mount_svcdir()
-{
- local fs= fsopts="-o rw,noexec,nodev,nosuid" devdir="rc-svcdir" devtmp="none" x=
- local svcsize=${rc_svcsize:-1024}
-
- if grep -Eq "[[:space:]]+tmpfs$" /proc/filesystems; then
- fs="tmpfs"
- fsopts="${fsopts},mode=0755,size=${svcsize}k"
- elif grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then
- fs="ramfs"
- # ramfs has no special options
- elif [ -e /dev/ram0 -a -e /dev/ram1 ] \
- && grep -Eq "[[:space:]]+ext2$" /proc/filesystems; then
- devdir="/dev/ram0"
- devtmp="/dev/ram1"
- fs="ext2"
- for x in ${devdir} ${devtmp}; do
- dd if=/dev/zero of="${x}" bs=1k count="${svcsize}"
- mkfs -t "${fs}" -i 1024 -vm0 "${x}" "${svcsize}"
- done
- else
- echo
- eerror "OpenRC requires tmpfs, ramfs or 2 ramdisks + ext2"
- eerror "compiled into the kernel"
- echo
- return 1
- fi
-
- local dotmp=false
- if [ -e "${RC_SVCDIR}"/deptree ]; then
- dotmp=true
- mount -n -t "${fs}" -o rw "${devtmp}" "${RC_LIBDIR}"/tmp
- cp -p "${RC_SVCDIR}"/deptree "${RC_SVCDIR}"/depconfig \
- "${RC_SVCDIR}"/nettree "${RC_LIBDIR}"/tmp 2>/dev/null
- fi
-
- # If we have no entry in fstab for $RC_SVCDIR, provide our own
- if fstabinfo --quiet "${RC_SVCDIR}"; then
- mount -n "${RC_SVCDIR}"
- else
- mount -n -t "${fs}" ${fsopts} "${devdir}" "${RC_SVCDIR}"
- fi
-
- if ${dotmp}; then
- cp -p "${RC_LIBDIR}"/tmp/deptree "${RC_LIBDIR}"/tmp/depconfig \
- "${RC_LIBDIR}"/tmp/nettree "${RC_SVCDIR}" 2>/dev/null
- umount -n "${RC_LIBDIR}"/tmp
- fi
-}
-
-. /etc/init.d/functions.sh
-. "${RC_LIBDIR}"/sh/rc-functions.sh
-[ -r /etc/conf.d/rc ] && . /etc/conf.d/rc
-[ -r /etc/rc.conf ] && . /etc/rc.conf
-
-# Set the console loglevel to 1 for a cleaner boot
-# the logger should anyhow dump the ring-0 buffer at start to the
-# logs, and that with dmesg can be used to check for problems
-if [ -n "${dmesg_level}" -a "${RC_SYS}" != "VPS" ]; then
- dmesg -n "${dmesg_level}"
-fi
-
-# By default VServer already has /proc mounted, but OpenVZ does not!
-# However, some of our users have an old proc image in /proc
-# NFC how they managed that, but the end result means we have to test if
-# /proc actually works or not. We to this by comparing uptime to one a second
-# ago
-mountproc=true
-if [ -e /proc/uptime ]; then
- up="$(cat /proc/uptime)"
- sleep 1
- if [ "${up}" = "$(cat /proc/uptime)" ]; then
- eerror "You have cruft in /proc that should be deleted"
- else
- einfo "/proc is already mounted, skipping"
- mountproc=false
- fi
- unset up
-fi
-
-if ${mountproc}; then
- procfs="proc"
- [ "${RC_UNAME}" = "GNU/kFreeBSD" ] && proc="linprocfs"
- ebegin "Mounting ${procfs} at /proc"
- if fstabinfo --quiet /proc; then
- mount -n /proc
- else
- mount -n -t "${procfs}" -o noexec,nosuid,nodev proc /proc
- fi
- eend $?
-fi
-unset mountproc
-
-# Read off the kernel commandline to see if there's any special settings
-# especially check to see if we need to set the CDBOOT environment variable
-# Note: /proc MUST be mounted
-if [ -r /sbin/livecd-functions.sh ]; then
- . /sbin/livecd-functions.sh
- livecd_read_commandline
-fi
-
-if [ "${RC_UNAME}" != "GNU/kFreeBSD" -a "${RC_SYS}" != "VPS" ]; then
- if grep -Eq "[[:space:]]+sysfs$" /proc/filesystems; then
- if [ -d /sys ]; then
- if ! mountinfo --quiet /sys; then
- ebegin "Mounting sysfs at /sys"
- if fstabinfo --quiet /sys; then
- mount -n /sys
- else
- mount -n -t sysfs -o noexec,nosuid,nodev sysfs /sys
- fi
- eend $?
- fi
- else
- ewarn "No /sys to mount sysfs needed in 2.6 and later kernels!"
- fi
- fi
-fi
-
-# Try to figure out how the user wants /dev handled
-if [ "${rc_devices}" = "static" \
- -o "${RC_SYS}" = "VPS" \
- -o "${RC_UNAME}" = "GNU/kFreeBSD" ]
-then
- ebegin "Using existing device nodes in /dev"
- eend 0
-else
- case ${rc_devices} in
- devfs) managers="devfs udev mdev";;
- udev) managers="udev devfs mdev";;
- mdev) managers="mdev udev devfs";;
- *) managers="udev devfs mdev";;
- esac
-
- for m in ${managers}; do
- # Check kernel params
- if get_bootparam "no${m}" || ! has_addon ${m}-start; then
- continue
- fi
- # Let's see if we can get this puppy rolling
- start_addon ${m} && break
-
- # Clean up
- mountinfo -q /dev && umount -n /dev
- done
-fi
-
-# Mount required stuff as user may not have then in /etc/fstab
-for x in "devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" "tmpfs /dev/shm 1777 ,nodev shm"
-do
- set -- ${x}
- grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
- mountinfo -q "$2" && continue
-
- if [ ! -d "$2" ] && \
- [ "${m}" = "devfs" -o "${m}" = "udev" ]; then
- mkdir -m "$3" -p "$2" >/dev/null 2>&1 || \
- ewarn "Could not create $2!"
- fi
-
- if [ -d "$2" ]; then
- ebegin "Mounting $1 at $2"
- if fstabinfo --quiet "$2"; then
- mount -n "$2"
- else
- mount -n -t "$1" -o noexec,nosuid"$4" "$5" "$2"
- fi
- eend $?
- fi
-done
-
-# If booting off CD, we want to update inittab before setting the runlevel
-if [ -f /sbin/livecd-functions.sh -a -n "${CDBOOT}" ]; then
- ebegin "Updating inittab"
- livecd_fix_inittab
- eend $?
- telinit q &>/dev/null
-fi
-
-. "${RC_LIBDIR}"/sh/init-common-post.sh