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
|