#!/bin/sh # Begin $RC_BASE/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 and prepares the temporary directory. # Description: Cleans the temporary directory /tmp and creates the # /var/run/utmp file and any other 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 $RC_BASE/init.d/cleanfs