diff options
author | Roy Marples <roy@marples.name> | 2008-03-26 14:02:59 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-03-26 14:02:59 +0000 |
commit | 55858eca2ec678fce14b21df33d08f5aaac94bcf (patch) | |
tree | 3ebbd71f930c7465d4e7296e1971d40d1f391d27 /sh/init.Linux.sh.in | |
parent | ac037241a72cdf830397a3b02d8873da3604fe4f (diff) |
.sh.BSD.in is a better extension.
Diffstat (limited to 'sh/init.Linux.sh.in')
-rw-r--r-- | sh/init.Linux.sh.in | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/sh/init.Linux.sh.in b/sh/init.Linux.sh.in deleted file mode 100644 index 25a3ecb7..00000000 --- a/sh/init.Linux.sh.in +++ /dev/null @@ -1,185 +0,0 @@ -#!@SHELL@ -# 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 --mount "${RC_SVCDIR}"; then - 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}" != "VSERVER" ]; 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 /proc" - if ! fstabinfo --mount /proc; then - 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}" != "VSERVER" \ - -a "${RC_SYS}" != "OPENVZ" ] -then - if grep -Eq "[[:space:]]+sysfs$" /proc/filesystems; then - if [ -d /sys ]; then - if ! mountinfo --quiet /sys; then - ebegin "Mounting /sys" - if ! fstabinfo --mount /sys; then - 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}" = "VSERVER" \ - -o "${RC_SYS}" = "OPENVZ" \ - -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 $2" - if ! fstabinfo --mount "$2"; then - 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 |