diff options
Diffstat (limited to 'lsb-bootscripts/etc/init.d/cleanfs')
-rw-r--r-- | lsb-bootscripts/etc/init.d/cleanfs | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/lsb-bootscripts/etc/init.d/cleanfs b/lsb-bootscripts/etc/init.d/cleanfs new file mode 100644 index 000000000..2e71456ee --- /dev/null +++ b/lsb-bootscripts/etc/init.d/cleanfs @@ -0,0 +1,106 @@ +#!/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/default/createfiles. +# 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/default/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 -e -n "\n${WARNING}Unknown device type: ${dtype}" + echo -e "${NORMAL}" + ;; + esac + ;; + *) + echo -e "\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 + + > /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/default/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 + |