lfs/bootscripts/contrib/lsb-v3/init.d/cleanfs

113 lines
3.1 KiB
Plaintext
Raw Normal View History

#!/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/sysconfig/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/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 -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
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