| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | #!/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 temporary directories early in the boot process.# Description:         Cleans temporary directories /var/run, /var/lock, and#                      /tmp.  cleanfs also creates /var/run/utmp and any files #                      defined in /etc/sysconfig/createfiles.# X-LFS-Default-Start: S50# X-LFS-Default-Stop:# 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/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                            ;;                        *)                             echo -n "\n${WARNING}Unknown device type: ${dtype}"                            echo "${NORMAL}"                            ;;                    esac                    ;;                *)                    echo "\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        message="${message} /var/lock"        find /var/lock -type f -exec rm -f {} \; || failed=1        message="${message} /var/run${NORMAL}"        find /var/run ! -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 standard        if egrep -qv '^(#|$)' /etc/sysconfig/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
 |