123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #!/bin/sh
- ########################################################################
- # Begin cleanfs
- #
- # Description : Clean file system
- #
- # Authors : Gerard Beekmans - gerard@linuxfromscratch.org
- # Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
- #
- # Version : LFS 7.0
- #
- ########################################################################
- ### 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
- # optionally) /tmp. cleanfs also creates /var/run/utmp
- # and any files defined in /etc/sysconfig/createfiles.
- # X-LFS-Provided-By: LFS
- ### END INIT INFO
- . /lib/boot/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}
- if [ "${SKIPTMPCLEAN}" = "" ]; then
- boot_mesg -n " /tmp" ${NORMAL}
- cd /tmp &&
- find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1
- fi
- > /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 cleanfs
|