aboutsummaryrefslogtreecommitdiffstats
path: root/bootscripts/contrib/lsb-v3/init.d/cleanfs
diff options
context:
space:
mode:
authorBruce Dubbs <bdubbs@linuxfromscratch.org>2008-06-03 21:51:14 +0000
committerBruce Dubbs <bdubbs@linuxfromscratch.org>2008-06-03 21:51:14 +0000
commit1c4800743d22d675ccfa48364d8aa558e8b7407c (patch)
treeca4254cbe5dd5adb0ed8af1f87c26bc569403164 /bootscripts/contrib/lsb-v3/init.d/cleanfs
parent9faa3e27afb932894ace74854fbb76631022446b (diff)
Moved bootscripts and udev-config to BOOK
Updated Makefile to automatically generate bootscript and udev-config tarballs Updated licesnse to be the same as BLFS git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@8548 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'bootscripts/contrib/lsb-v3/init.d/cleanfs')
-rw-r--r--bootscripts/contrib/lsb-v3/init.d/cleanfs113
1 files changed, 113 insertions, 0 deletions
diff --git a/bootscripts/contrib/lsb-v3/init.d/cleanfs b/bootscripts/contrib/lsb-v3/init.d/cleanfs
new file mode 100644
index 000000000..b160fbc22
--- /dev/null
+++ b/bootscripts/contrib/lsb-v3/init.d/cleanfs
@@ -0,0 +1,113 @@
+#!/bin/sh
+# Begin /etc/init.d/cleanfs
+
+### BEGIN INIT INFO
+# Provides: cleanfs
+# Required-Start: $local_fs
+# Should-Start:
+# Required-Stop:
+# Should-Stop:
+# Default-Start: sysinit
+# 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