| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | #!/bin/sh# Begin /etc/init.d/cleanfs### BEGIN INIT INFO# Provides:            cleanfs# Required-Start:      $local_fs# Should-Start:# Required-Stop:# Should-Stop:# Default-Start:       S# Default-Stop:        # Short-Description:   Cleans and prepares the temporary directory.# Description:         Cleans the temporary directory /tmp and creates the#                      /var/run/utmp file and any other files defined in#                      /etc/default/createfiles.# X-LFS-Provided-By:   LFS### END INIT INFO. /lib/lsb/init-functions# Function to create files/directory on boot.create_files(){    # Read in the configuration file.    exec 9>&0 < /etc/default/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                            ;;                        *)                             echo -e -n "\n${WARNING}Unknown device type: ${dtype}"                            echo -e "${NORMAL}"                            ;;                    esac                    ;;                *)                    echo -e "\n${WARNING}Unknown type: ${type}${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)        message="Cleaning file systems: "        message="${message}${INFO} /tmp"        find /tmp -xdev -mindepth 1 ! -name lost+found \            -delete || 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 standard        if egrep -qv '^(#|$)' /etc/default/createfiles 2>/dev/null        then            message="Creating files and directories..."            create_files            evaluate_retval standard        fi        ;;    *)        echo "Usage: ${0} {start}"        exit 1        ;;esac# End /etc/init.d/cleanfs
 |