Code: Select all
sbin/rc line59:Most:Command Not FoundCode: Select all
sbin/rc line59:Most:Command Not Found
Code: Select all
*Caching service dependencies. [ok]
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
bash: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
*Bringing eth0 down [ok]
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
*Cleaning /var/lock, /var/run [ok]
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
xargs: environment is too large for exec
*Cleaning /tmp
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
/sbin/rc: line59: Most: Command Not Found
No there are just fi statements.Is there any extra whitespace or line returns around line 59 in /sbin/rc?
Code: Select all
grep -C 10 -n Most /sbin/rcCode: Select all
grep -C 10 -n Most /etc/inittabCode: Select all
#!/bin/bash
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-src/rc-scripts/sbin/rc,v 1.51 2003/05/12 21:23:05 azarah Exp $
trap ":" INT QUIT TSTP
source /sbin/functions.sh
umask 022
try() {
local errstr=
local retval=0
# This works fine in test, but real life booting, fails for mounting /proc
# if we only check $? for instance ... We thus need to [ -n "${errstr}" ]
# as well.
errstr="$((eval $*) 2>&1 >/dev/null)"
retval=$?
if [ "${retval}" -ne 0 ] || \
([ "${*/mount/}" != "$*" -a -n "${errstr}" ])
then
echo -e "${ENDCOL}${NORMAL}[${BAD} oops ${NORMAL}]"
echo
eerror "The \"${1}\" command failed with error:"
echo
echo "${errstr#*: }"
echo
eerror "Since this is a critical task, startup cannot continue."
echo
/sbin/sulogin ${CONSOLE}
einfo "Unmounting filesystems"
/bin/mount -a -o remount,ro & >/dev/null
einfo "Rebooting"
/sbin/reboot -f
fi
return ${retval}
}
# Check that $svcdir exists ...
check_statedir() {
if [ ! -d "${svcdir}" ]
then
if ! mkdir -p "${svcdir}" &> /dev/null
then
echo
eerror "For Gentoo Linux to function properly, \"${svcdir}\" need to exist."
eerror "Please mount your root partition read/write, and execute:"
echo
eerror " # mkdir -p ${svcdir}"
echo; echo
/sbin/sulogin ${CONSOLE}
einfo "Unmounting filesystems"
/bin/mount -a -o remount,ro & >/dev/null
einfo "Rebooting"
/sbin/reboot -f
fi
fi
}
# Save $1
argv1="$1"
# First time boot stuff goes here. Note that 'sysinit' is an internal runlevel
# used to bring up local filesystems, and should not be started with /sbin/rc
# directly ...
if [ "${RUNLEVEL}" = "S" -a "${argv1}" = "sysinit" ]
then
# Setup initial $PATH just in case
PATH="/bin:/sbin:/usr/bin:/usr/sbin:${PATH}"
echo
echo -e "${GOOD}Gentoo Linux${GENTOO_VERS}; \e[34;01mhttp://www.gentoo.org/${NORMAL}"
echo -e " Copyright 2001-2003 Gentoo Technologies, Inc.; Distributed under the GPL"
echo
ebegin "Mounting proc at /proc"
try mount -n /proc
eend $?
if [ -d /sys -a "$(get_KV)" -ge "$(KV_to_int '2.5.0')" ]
then
ebegin "Mounting sysfs at /sys"
mount -t sysfs none /sys
eend $?
elif [ "$(get_KV)" -ge "$(KV_to_int '2.5.0')" ]
then
ewarn "No /sys to mount sysfs needed in 2.5+ kernels!"
fi
# Check if the user disabled devfs
devfs="yes"
if get_bootparam "nodevfs"
then
devfs="no"
fi
# Fix weird bug where there is a /dev/.devfsd in a unmounted /dev
mymounts="$(awk '($3 == "devfs") { print "yes"; exit 0 }' /proc/mounts)"
if [ -e "/dev/.devfsd" -a "${mymounts}" != "yes" ]
then
rm -f /dev/.devfsd
fi
# With the new way, /dev can be mounted by the kernel ...
if [ "${devfs}" = "yes" -a ! -e "/dev/.devfsd" ]
then
mymounts="$(awk '($2 == "devfs") { print "yes"; exit 0 }' /proc/filesystems)"
# Is devfs support compiled in?
if [ "${mymounts}" = "yes" ]
then
ebegin "Mounting devfs at /dev"
try mount -n -t devfs none /dev
eend $?
else
clear
echo
einfo "The Gentoo Linux system initialization scripts have detected that your"
einfo "kernel has been compiled without DEVFS support. Because Gentoo Linux"
einfo "has been designed to work with DEVFS, it is required that you compile"
einfo "support for it into your kernel. Please read the 'Gentoo Linux from"
einfo "source (build) CD Installation Guide' at:"
echo
einfo " http://www.gentoo.org/doc/build.html"
echo
einfo "for more information on how to do this."
echo
read -t 15 -p "(hit Enter to continue or wait 15 seconds...)"
fi
fi
# From linux-2.5.68 we need to mount /dev/pts again ...
if [ "$(get_KV)" -ge "$(KV_to_int '2.5.68')" ]
then
have_devpts="$(awk '($2 == "devpts") { print "yes"; exit 0 }' /proc/filesystems)"
mymounts="$(awk '($3 == "devfs") { print "yes"; exit 0 }' /proc/mounts)"
if [ "${have_devpts}" = "yes" ]
then
# Only try to create /dev/pts if we have /dev mounted as devfs,
# else it might fail as / might be still mounted readonly.
if [ ! -d /dev/pts -a -e "/dev/.devfsd" -a "${mymounts}" = "yes" ]
then
# Make sure we have /dev/pts
mkdir -p /dev/pts &> /dev/null
fi
if [ -d /dev/pts ]
then
ebegin "Mounting devpts at /dev/pts"
try mount -n -t devpts none /dev/pts
eend $?
fi
fi
fi
# Need devfsd running now so that /dev/ram0 exists if we need it
mymounts="$(awk '($3 == "devfs") { print "yes"; exit 0 }' /proc/mounts)"
if [ "${devfs}" = "yes" -a -e "/dev/.devfsd" -a \
"${mymounts}" = "yes" ]
then
ebegin "Starting devfsd"
/sbin/devfsd /dev > /dev/null
eend $?
fi
# Mount either a ramdisk or tmpfs if requested.
# we do this to temp mount, until we can get /var mounted ...
tsvcdir="/mnt/.init.d"
# Should we use tmpfs or a ramdisk for caching dependency and
# general initscript data? Note that the 'gentoo=tmpfs' kernel
# option should override most settings ...
if get_bootparam "tmpfs" || \
[ "${svcmount}" = "yes" -a "${svcfstype}" = "tmpfs" ]
then
mkdir -p "${tsvcdir}" &> /dev/null
ebegin "Mounting tmpfs at ${tsvcdir}"
try mount -n -t tmpfs tmpfs "${tsvcdir}" \
-o rw,mode=0644,size="${svcsize}"k
eend 0
elif get_bootparam "ramfs" || \
[ "${svcmount}" = "yes" -a "${svcfstype}" = "ramfs" ]
then
mkdir -p "${tsvcdir}"
ebegin "Mounting ramdisk 0 at ${tsvcdir}"
try dd if=/dev/zero of=/dev/ram0 bs=1k count="${svcsize}"
try /sbin/mke2fs -i 1024 -vm0 /dev/ram0 "${svcsize}"
try mount -n -t ext2 /dev/ram0 "${tsvcdir}" -o rw
eend 0
fi
if get_bootparam "adelie"
then
einfo "Server/Node low-level initialisation..."
# Saving the kernel attributed hostname to a file for future
# initialisation selection: see /etc/init.d/switch.
echo "$(< /proc/sys/kernel/hostname)" > "${svcdir}/hostname"
if checkserver
then
# For server we do pretty much a standard boot ...
einfo "Server detected."
else
#
# Low-level Node Initialisation
#
einfo "Node detected."
init_node
fi
fi
# If a Adelie server, or normal Gentoo box, init swap ...
if checkserver
then
# Swap needs to be activated *after* devfs has been mounted and *after*
# devfsd has been started, so that the fstab can be properly parsed
# and only if the server/Gentoo box is initialized ...
ebegin "Activating (possible) swap"
/sbin/swapon -a &> /dev/null
eend 0
fi
# 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
/bin/dmesg -n 1
# $BOOT can be used by rc-scripts to test if it is the first time
# the 'boot' runlevel is executed. Now also needed by some stuff in
# the 'sysinit' runlevel ...
export BOOT="yes"
# I want to get rid of $BOOT, as SOFTLEVEL *should* be used instead ..
export SOFTLEVEL="boot"
start_critical_service() {
local retval=
source "/etc/init.d/${x}" || error "Failed to source /etc/init.d/${x}"
retval=$?
[ "${retval}" -ne 0 ] && return "${retval}"
start || eerror "Failed to start /etc/init.d/${x}"
retval=$?
return "${retval}"
}
# We do not want to break compadibility, so we do not fully integrate
# these into /sbin/rc, but rather start them by hand ...
for x in checkroot hostname modules checkfs localmount
do
if ! start_critical_service "${x}"
then
echo
eerror "One of more critical startup scripts failed to start!"
eerror "Please correct this, and reboot ..."
echo; echo
/sbin/sulogin ${CONSOLE}
einfo "Unmounting filesystems"
/bin/mount -a -o remount,ro & >/dev/null
einfo "Rebooting"
/sbin/reboot -f
fi
done
# Check that $svcdir exists ...
check_statedir
# Since we are using tmpfs or ramfs, just bin to $tsvcdir to $svcdir
if get_bootparam "tmpfs" || get_bootparam "ramfs" || [ "${svcmount}" = "yes" ]
then
mount --bind "${tsvcdir}" "${svcdir}"
fi
# Clear $svcdir from stale entries
rm -rf "${svcdir}"/*
# Update the dependency cache
/sbin/depscan.sh
# Now that the dependency cache are up to date, make sure these
# are marked as started ...
for x in checkroot hostname modules checkfs localmount
do
ln -snf "/etc/init.d/${x}" "${svcdir}/started/${x}"
done
fi # Sysinit ends here
if [ "${RUNLEVEL}" = "S" -a "${argv1}" = "boot" ]
then
# $BOOT can be used by rc-scripts to test if it is the first time
# the 'boot' runlevel is executed
export BOOT="yes"
# I want to get rid of $BOOT, as SOFTLEVEL *should* be used instead ..
export SOFTLEVEL="boot"
fi
if [ "${argv1}" = "sysinit" ]
then
exit 0
fi
source "${svclib}/sh/rc-services.sh"
source "${svclib}/sh/rc-daemon.sh"
if [ -f "${svcdir}/softlevel" ]
then
# Set OLDSOFTLEVEL if we had a valid SOFTLEVEL
export OLDSOFTLEVEL="$(< ${svcdir}/softlevel)"
else
export OLDSOFTLEVEL=
fi
if [ -z "${argv1}" ]
then
if [ -f "${svcdir}/softlevel" ]
then
export SOFTLEVEL="$(< ${svcdir}/softlevel)"
else
export SOFTLEVEL="boot"
fi
else
export SOFTLEVEL="${argv1}"
fi
if [ ! -f "${svcdir}/softlevel" ]
then
echo "${SOFTLEVEL}" > "${svcdir}/softlevel"
fi
# For keeping a list of services that fails during boot/halt
if [ ! -d "${svcdir}/failed" ]
then
install -d -m0755 "${svcdir}/failed"
else
rm -rf "${svcdir}"/failed/*
fi
if [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ]
then
myscripts=
elif [ "${SOFTLEVEL}" = "single" ]
then
myscripts="checkroot hostname modules checkfs localmount"
elif [ ! -d "/etc/runlevels/${SOFTLEVEL}" ]
then
eerror "ERROR: runlevel ${SOFTLEVEL} does not exist; exiting..."
exit 1
else
myscripts=
if [ "${SOFTLEVEL}" != "boot" ]
then
# Normal runlevels *include* boot scripts
mylevels="$(dolisting "/etc/runlevels/${SOFTLEVEL}/")"
mylevels="${mylevels} $(dolisting /etc/runlevels/boot/)"
else
# Non-normal runlevels don't include boot scripts as default
mylevels="$(dolisting "/etc/runlevels/${SOFTLEVEL}/")"
fi
[ "${OLDSOFTLEVEL}" = "boot" -o "${OLDSOFTLEVEL}" = "single" ] \
&& /bin/dmesg -n 1
for x in ${mylevels}
do
[ -L "${x}" ] && myscripts="${myscripts} ${x##*/}"
done
fi
# The softscripts dir contains all scripts that belong to the
# runlevel specified in ${svcdir}/softlevel
# It needs to be a new directory, else when stopping the services
# and the old directory is not intact, things get broken
install -d -m0755 "${svcdir}/softscripts.new"
for x in ${myscripts}
do
if [ ! -e "/etc/init.d/${x}" ]
then
ewarn "WARNING: /etc/init.d/${x} missing; skipping..."
continue
fi
# The -f eliminates a warning if the symlink already exists,
# which can happen if a service is in both the boot level and
# the current "normal" runlevel
ln -snf "/etc/init.d/${x}" "${svcdir}/softscripts.new/${x}"
done
dep_stop() {
local x=
local dep=
local needsme=
local myservice=
local depservice=
[ ! -L "$1" ] && continue
if [ ! -e "$1" ]
then
# Remove dud symlinks
rm -f "$1"
continue
fi
myservice="${1##*/}"
# Candidate for zapping
if [ ! -L "${svcdir}/softscripts.new/${myservice}" ]
then
# If this is a 'net' service, we do not want to stop it if it was
# not in the previous runlevel, and we are not shutting down,
# rebooting or going to single runlevel. This is because the user
# might have started it (net.ppp?), or possibly hotplug ...
if [ "${myservice%%.*}" = "net" -a \
"${myservice##*.}" != "${myservice}" ] && \
[ "${SOFTLEVEL}" != "reboot" -a \
"${SOFTLEVEL}" != "shutdown" -a \
"${SOFTLEVEL}" != "single" ]
then
if [ -n "${OLDSOFTLEVEL}" ] && \
! in_runlevel "${myservice}" "${OLDSOFTLEVEL}"
then
# This service is not in the previous runlevel, so
# do not stop it ...
continue
fi
fi
# Should not work for 'use'
if [ -z "$(needsme "${myservice}")" ]
then
# Nothing depends on me
stop_service "${myservice}"
else
# Something may depend on me
needsme=0
for dep in $(needsme "${myservice}")
do
if service_started "${dep}" && \
[ -L "${svcdir}/softscripts.new/${dep}" ]
then
# This dep is valid
needsme=1
break
fi
done
if [ "${needsme}" -eq 0 ]
then
stop_service "${myservice}"
fi
fi
fi
}
# Stop services
for i in $(dolisting "${svcdir}/started/")
do
dep_stop "${i}"
done
# Only change softlevel AFTER all the services have been stopped,
# else they will not get the depend's right (wrong SOFTLEVEL)
echo "${SOFTLEVEL}" > "${svcdir}/softlevel"
if [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ]
then
source /sbin/functions.sh
# Make sure that our $svcdir are clean for next reboot ...
rm -rf "${svcdir}"/*
source /etc/init.d/halt.sh
if [ "${SOFTLEVEL}" = "reboot" ]
then
source /etc/init.d/reboot.sh
else
source /etc/init.d/shutdown.sh
fi
# Should never get here
exit 0
fi
# Move the old softscritps directory to a different one
# and make the new softscripts directory the current
mv -f "${svcdir}/softscripts" "${svcdir}/softscripts.old"
mv -f "${svcdir}/softscripts.new" "${svcdir}/softscripts"
dep_start() {
local myservice=
[ ! -L "$1" ] && continue
myservice="${1##*/}"
# Only start a script if it isn't already running
service_started "${myservice}" || schedule_service_startup "${myservice}"
}
# Start scripts
for i in $(dolisting "${svcdir}/softscripts/")
do
dep_start "${i}"
done
# Wait for any services that may still be running ...
[ "${RC_PARALLEL_STARTUP}" = "yes" ] && wait
# Clean the old runlevel
rm -rf "${svcdir}/softscripts.old" &> /dev/null
# Depends gets nuked, so update them
# (this problem should be solved now, but i think it will be a good idea
# to recreate the deps after a change in runlevel)
#/sbin/depscan.sh &>/dev/null
# We want devfsd running after a change of runlevel (this is mostly if we return
# from runlevel 'single')
if [ -z "`ps --no-heading -C 'devfsd'`" -a \
-n "`gawk '/\/dev devfs/ { print }' /proc/mounts 2> /dev/null`" ]
then
/sbin/devfsd /dev &> /dev/null
fi
# Runlevel end, so clear stale fail list
rm -rf "${svcdir}/failed" &> /dev/null
# If we were in the boot runlevel, it is done now ...
[ -n "${BOOT}" ] && unset BOOT
# vim:ts=4
Could you please do this and include line numbers?spooon wrote:Post the lines surrounding line 59 in /sbin/rc, the lines surrounding line 59 of /etc/inittab, the output ofand the output ofCode: Select all
grep -C 10 -n Most /sbin/rcCode: Select all
grep -C 10 -n Most /etc/inittab