Subversion Repositories configs

Rev

Blame | Last modification | View Log | RSS feed

# readahead - readahead
#
# Starts readahead

start on startup

stop on started rc RUNLEVEL=[016]

console output

script
        # do not exit on failed commands
        set +e

. /etc/sysconfig/readahead
. /etc/init.d/functions
cmdline=$(cat /proc/cmdline)

check_autorelabel()
{
        if [ -f  /.autorelabel ] || strstr "$cmdline" autorelabel; then         
                # Check SELinux status
                selinuxfs="$(fstab_decode_str `LC_ALL=C awk '/ selinuxfs / { print $2 }' /proc/mounts`)"
                SELINUX_STATE=
                if [ -n "$selinuxfs" ] && [ "`cat /proc/self/attr/current`" != "kernel" ]; then
                    if [ -r "$selinuxfs/enforce" ] ; then
                        SELINUX_STATE=`cat "$selinuxfs/enforce"`
                    else
                        # assume enforcing if you can't read it
                        SELINUX_STATE=1
                    fi
                fi
        
                if [ -n "$SELINUX_STATE" ]; then
                        return 0
                fi
        fi
        return 1
}

        [ -f /.autofsck ] && exit 0
        [ -f /forcefsck ] && exit 0

        [ "$READAHEAD" != "yes" ] && exit 0
        [ -f /var/lib/readahead/early.sorted ] || exit 0

        [ -f /.readahead_collect ] && exit 0
        if [ "$READAHEAD_COLLECT_ON_RPM" = "yes" ]; then
                [ /var/lib/readahead/early.sorted -nt /var/lib/rpm/Packages ] || exit 0
        fi
        
        # Check for enough memory
        read label val rest  < /proc/meminfo 
        [ "$rest" = "kB" -a $val -gt ${READAHEAD_MIN_MEM:-393216} ] || exit 0

        check_autorelabel && exit 0

        
        try=0
        while [ $try -lt 10 ]; do
                if test -d /usr/sbin; then
                        try=10
                else
                        try=$(($try+1))
                        sleep 1
                fi
        done
        echo "<6>readahead: starting" > /dev/kmsg
        exec /sbin/readahead --dont-sort /var/lib/readahead/early.sorted
end script