D.12. /etc/rc.d/init.d/cleanfs



#!/bin/sh


########################################################################


# Begin $rc_base/init.d/cleanfs


#


# Description : Clean file system


#


# Authors     : Gerard Beekmans - gerard@linuxfromscratch.org


#


# Version     : 00.00


#


# Notes       :


#


########################################################################





. /etc/sysconfig/rc


. ${rc_functions}





# Function to create files/directory on boot.


create_files() {


    # Read in the configuration file.


    exec 9>&0 < /etc/sysconfig/createfiles


        while read name type perm usr grp dtype maj min junk


        do





            # Ignore comments and blank lines.


                   case "${name}" in


                ""|\#*) continue ;;


            esac





            # Ignore existing files.


            if [ ! -e "${name}" ]; then


                # Create stuff based on its type.


                case "${type}" in


                    dir)


                        mkdir "${name}"


                        ;;


                    file)


                        :> "${name}"


                        ;;


                    dev)


                        case "${dtype}" in


                            char)


                                mknod "${name}" c ${maj} ${min}


                                ;;


                            block)


                                mknod "${name}" b ${maj} ${min}


                                ;;


                            pipe)


                                mknod "${name}" p


                                ;;


                            *) 


                                boot_mesg -n "\nUnknown device type: ${dtype}" ${WARNING}


                                boot_mesg "" ${NORMAL}


                                ;;


                        esac


                        ;;


                    *)


                        boot_mesg -n "\nUnknown type: ${type}" ${WARNING}


                        boot_mesg "" ${NORMAL}


                        continue


                        ;;


                esac





                # Set up the permissions, too.


                chown ${usr}:${grp} "${name}"


                chmod ${perm} "${name}"


            fi


        done


    exec 0>&9 9>&-


}





case "${1}" in


    start)


        boot_mesg -n "Cleaning file systems:" ${INFO}





        boot_mesg -n " /tmp" ${NORMAL}


        cd /tmp &&


        find . -xdev -mindepth 1 ! -name lost+found \


            -delete || failed=1





        boot_mesg -n " /var/lock" ${NORMAL}


        cd /var/lock &&


        find . -type f -exec rm -f {} \; || failed=1





        boot_mesg " /var/run" ${NORMAL}


        cd /var/run &&


        find . ! -type d ! -name utmp \


            -exec rm -f {} \; || failed=1


        > /var/run/utmp


        if grep -q '^utmp:' /etc/group ; then


            chmod 664 /var/run/utmp


            chgrp utmp /var/run/utmp


        fi





        (exit ${failed})


        evaluate_retval





        if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then


            boot_mesg "Creating files and directories..."


            create_files


            evaluate_retval


        fi


        ;;


    *)


        echo "Usage: ${0} {start}"


        exit 1


        ;;


esac





# End $rc_base/init.d/cleanfs



Host by Unixetc