| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | #!/bin/sh######################################################################### Begin cleanfs## Description : Clean file system## Authors     : Gerard Beekmans - gerard@linuxfromscratch.org#               DJ Lucas - dj@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/lsb/init-functions# Function to create files/directory on boot.function create_files() {   # Input to file descriptor 9 and output to stdin (redirection)   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                     ;;                  *)                      log_warning_msg "\nUnknown device type: ${dtype}"                      ;;               esac               ;;            *)               log_warning_msg "\nUnknown type: ${type}"                continue               ;;         esac         # Set up the permissions, too.         chown ${usr}:${grp} "${name}"         chmod ${perm} "${name}"      fi   done   # Close file descriptor 9 (end redirection)   exec 0>&9 9>&-   return 0}case "${1}" in   start)      log_info_msg "Cleaning file systems:"       if [ "${SKIPTMPCLEAN}" = "" ]; then         log_info_msg2 "\n /tmp"          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         log_info_msg "Creating files and directories... "         create_files      # Always returns 0         evaluate_retval      fi      exit $failed      ;;   *)      echo "Usage: ${0} {start}"      exit 1      ;;esac# End cleanfs
 |