On 5/24/06, Kari Pahula <[EMAIL PROTECTED]> wrote:
On Tue, May 16, 2006 at 08:36:58PM -0400, maru dubshinki wrote:
> Package: preload
> Severity: wishlist
> Version: 0.2-6
>
> The bottleneck in booting is often disk I/O; preload exacerbates this

I am aware of this. That's why I'm starting preload with sequence
number 95, which should make it start very late at boot time.

> problem when it boots because it is basically based on reading from
> disks. I noticed that preload was slowing down my boot in exactly this
> way when I was examining the graph bootchart generates. I use file-rc,
> and so I tweaked preload's entry in /etc/runlevel.conf so that instead
> of running on levels "2,3,4,5", it runs in "4,5"- which is to say,
> instead of starting

It seems to me that you've customised your system somehow. The
behaviour you describe makes it sound that you're switching to
runlevel 2 after S and then to 4 or 5 and have defined most of the
services to start in runlevel 4 and/or 5.

The default is to start all services meant to be run in multi user
mode on run levels 2-5 and stick to 2 after S.

Could you send me the output of "who -r" and files /etc/inittab,
/etc/init.d/rcS and /etc/runlevel.conf?


What's the fun of an uncustomized system? :)

who -r:
run-level 2  May 24 18:42                   last=S

/etc/inittab:
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:2:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fall through in case of emergency.
z6:6:respawn:/sbin/sulogin

# What to do when CTRL-ALT-DEL is pressed.
#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."

# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3

/etc/init.d/rcS:
#! /bin/sh
#
#   rcS - Help to boot the system into single user mode
#   Copyright (c) 1998  Martin Schulze <[EMAIL PROTECTED]>
#                 1998  Winfried Trümper <[EMAIL PROTECTED]>
#                 1998  Miquel van Smoorenburg <[EMAIL PROTECTED]>
#            1999-2000  Roland Rosenfeld <[EMAIL PROTECTED]>
#
#   $Id: rcS,v 1.10 2000/07/08 11:51:31 roland Exp $
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#   Ideas taken from rcS as provided by the sysvinit package and from
#   the file-rc /etc/init.d/rc program

PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

CFGFILE="/etc/runlevel.conf"
BAKCFG="/etc/runlevel.fallback"

#
#       See if system needs to be setup. This is ONLY meant to
#       be used for the initial setup after a fresh installation!
#
if [ -x /sbin/unconfigured.sh ]
then
 /sbin/unconfigured.sh
fi

#
#       Source defaults.
#
. /etc/default/rcS
export VERBOSE

#
#       Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP

element() {
   local element list IFS


   element="$1"

   [ "$2" = "in" ] && shift
   list="$2"
   [ "$list" = "-" ] && return 1
   [ "$list" = "*" ] && return 0

   IFS=","
   set -- $list
   case $element in
       "$1" | "$2" | "$3" | "$4" | "$5" | "$6" | "$7" | "$8" | "$9")
           return 0
   esac
   return 1
}

CMDLIST="set centerline=here"

#
# If $CFGFILE isn't available, try the fallback:
#
if [ ! -f "$CFGFILE" ]
then
   echo "Missing configuration file '$CFGFILE' using fallback config."

   if [ -f "$BAKCFG" ]
   then
       CFGFILE="$BAKCFG"
   else
       echo "No configuration file at all. You're in serious trouble now."
       CFGFILE="/dev/null"
   fi
fi

# read the file...
while read  SORT_NO  OFF_LEVELS  ON_LEVELS  CMD  OPTIONS
do
   case "$SORT_NO" in
       \#* | "") continue ;;
   esac
   [ ! -f "$CMD" ] && continue

     # continue only if CMD was not started in previous runlevel
   if element "$runlevel" in "$ON_LEVELS"
   then
       # append CMD to the list of
       case "$CMD" in
       *.sh)   CMDLIST="$CMDLIST; (set -- start; . $CMD)" ;;
       *)      [ -x "$CMD" ] && CMDLIST="$CMDLIST; $CMD start" ;;
       esac
   fi

done < $CFGFILE

# Execute the commands collected above
(trap - INT QUIT TSTP; sh -c "$CMDLIST")

#
#       For compatibility, run the files in /etc/rc.boot too.
#
[ -d /etc/rc.boot ] && run-parts /etc/rc.boot

#
#       Finish setup if needed. The comment above about
#       /sbin/unconfigured.sh applies here as well!
#
if [ -x /sbin/setup.sh ]
then
 /sbin/setup.sh
fi

/etc/runlevel.conf:
# This file was automatically generated by /usr/share/file-rc/rclink2file.sh.
# You can use your favourite editor or update-rc.d(8) to modify it.
# Read runlevel.conf(5) man page for more information about this file.
#
# Format:
# <sort> <off-> <on-levels>     <command>
01      -       S               /etc/init.d/glibc.sh
02      -       S               /etc/init.d/mountkernfs.sh
03      -       S               /etc/init.d/udev
04      -       S               /etc/init.d/mountdevsubfs.sh
05      -       S               /etc/init.d/bootlogd
05      -       S               /etc/init.d/initrd-tools.sh
05      -       S               /etc/init.d/keymap.sh
05      0,1,6   4,5             /etc/init.d/preload
07      -       S               /etc/init.d/hdparm
10      -       2,3,4,5         /etc/init.d/sysklogd
10      -       S               /etc/init.d/checkroot.sh
11      -       2,3,4,5         /etc/init.d/klogd
11      0,1,6   -               /etc/init.d/cron
18      -       S               /etc/init.d/ifupdown-clean
18      -       S               /etc/init.d/hwclockfirst.sh
20      -       0,6             /etc/init.d/sendsigs
20      -       S               /etc/init.d/module-init-tools
20      -       S               /etc/init.d/modutils
20      0,1,6   4,5             /etc/init.d/exim4
20      0,1,6   2,3,4,5         /etc/init.d/inetd
20      0,1,6   2,3,4,5         /etc/init.d/makedev
20      0,1,6   2,3,4,5         /etc/init.d/pcmcia
20      0,1,6   3,4,5           /etc/init.d/privoxy
20      0,1,6   4,5             /etc/init.d/ssh
20      0,1,6   4,5             /etc/init.d/gpm
22      -       S               /etc/init.d/hwclock.sh
30      -       0,6             /etc/init.d/urandom
25      0,6     -               /etc/init.d/hwclock.sh
30      -       S               /etc/init.d/checkfs.sh
30      -       S               /etc/init.d/procps.sh
30      -       1               /etc/init.d/killprocs
31      -       0,6             /etc/init.d/umountnfs.sh
35      -       0,6             /etc/init.d/networking
35      -       S               /etc/init.d/mountall.sh
36      -       0,6             /etc/init.d/ifupdown
36      -       S               /etc/init.d/discover
36      -       S               /etc/init.d/mountall-bootclean.sh
36      -       S               /etc/init.d/mtab.sh
36      -       S               /etc/init.d/udev-mtab
39      -       S               /etc/init.d/ifupdown
40      -       0,6             /etc/init.d/umountfs
40      -       S               /etc/init.d/hostname.sh
40      -       S               /etc/init.d/networking
45      -       S               /etc/init.d/mountnfs.sh
46      -       S               /etc/init.d/mountnfs-bootclean.sh
48      -       S               /etc/init.d/console-screen.sh
50      0,6     S               /etc/init.d/alsa-utils
55      -       S               /etc/init.d/bootmisc.sh
55      -       S               /etc/init.d/urandom
60      -       0,6             /etc/init.d/umountroot
70      -       S               /etc/init.d/nviboot
70      -       S               /etc/init.d/screen-cleanup
70      -       S               /etc/init.d/x11-common
71      -       S               /etc/init.d/xserver-xorg
75      0,6     -               /etc/init.d/hdparm
75      -       S               /etc/init.d/sudo
89      -       3,4,5           /etc/init.d/cron
89      0,1,6   -               /etc/init.d/klogd
89      0,1,6   2,3,4,5         /etc/init.d/atd
90      -       0               /etc/init.d/halt
90      -       6               /etc/init.d/reboot
90      0,1,6   -               /etc/init.d/sysklogd
90      -       1               /etc/init.d/single
99      -       2,3,4,5         /etc/init.d/rmnologin
99      -       2,3,4,5         /etc/init.d/stop-bootlogd
99      -       S               /etc/init.d/stop-bootlogd-single
# THE LAST LINE IS NEVER READ

If you didn't want them inline, apologies.

~maru

Reply via email to