123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/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 ! -newer /proc -exec rm -f {} \; || failed=1
- boot_mesg " /var/run" ${NORMAL}
- cd /var/run &&
- find . ! -type d ! -name utmp ! -newer /proc \
- -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
|