aboutsummaryrefslogtreecommitdiffstats
path: root/lsb-bootscripts/etc/init.d/cleanfs
diff options
context:
space:
mode:
Diffstat (limited to 'lsb-bootscripts/etc/init.d/cleanfs')
-rw-r--r--lsb-bootscripts/etc/init.d/cleanfs106
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
+