[1c48007] | 1 | #!/bin/sh
|
---|
| 2 | # Begin /etc/init.d/cleanfs
|
---|
| 3 |
|
---|
| 4 | ### BEGIN INIT INFO
|
---|
| 5 | # Provides: cleanfs
|
---|
| 6 | # Required-Start: $local_fs
|
---|
| 7 | # Should-Start:
|
---|
| 8 | # Required-Stop:
|
---|
| 9 | # Should-Stop:
|
---|
[010d108] | 10 | # Default-Start: S
|
---|
[1c48007] | 11 | # Default-Stop:
|
---|
| 12 | # Short-Description: Cleans temporary directories early in the boot process.
|
---|
| 13 | # Description: Cleans temporary directories /var/run, /var/lock, and
|
---|
| 14 | # /tmp. cleanfs also creates /var/run/utmp and any files
|
---|
| 15 | # defined in /etc/sysconfig/createfiles.
|
---|
| 16 | # X-LFS-Default-Start: S50
|
---|
| 17 | # X-LFS-Default-Stop:
|
---|
| 18 | # X-LFS-Provided-By: LFS
|
---|
| 19 | ### END INIT INFO
|
---|
| 20 |
|
---|
| 21 | . /lib/lsb/init-functions
|
---|
| 22 |
|
---|
| 23 | # Function to create files/directory on boot.
|
---|
| 24 | create_files()
|
---|
| 25 | {
|
---|
| 26 | # Read in the configuration file.
|
---|
| 27 | exec 9>&0 < /etc/sysconfig/createfiles
|
---|
| 28 | while read name type perm usr grp dtype maj min junk
|
---|
| 29 | do
|
---|
| 30 | # Ignore comments and blank lines.
|
---|
| 31 | case "${name}" in
|
---|
| 32 | ""|\#*) continue ;;
|
---|
| 33 | esac
|
---|
| 34 |
|
---|
| 35 | # Ignore existing files.
|
---|
| 36 | if [ ! -e "${name}" ]
|
---|
| 37 | then
|
---|
| 38 | # Create stuff based on its type.
|
---|
| 39 | case "${type}" in
|
---|
| 40 | dir)
|
---|
| 41 | mkdir "${name}"
|
---|
| 42 | ;;
|
---|
| 43 | file)
|
---|
| 44 | :> "${name}"
|
---|
| 45 | ;;
|
---|
| 46 | dev)
|
---|
| 47 | case "${dtype}" in
|
---|
| 48 | char)
|
---|
| 49 | mknod "${name}" c ${maj} ${min}
|
---|
| 50 | ;;
|
---|
| 51 | block)
|
---|
| 52 | mknod "${name}" b ${maj} ${min}
|
---|
| 53 | ;;
|
---|
| 54 | pipe)
|
---|
| 55 | mknod "${name}" p
|
---|
| 56 | ;;
|
---|
| 57 | *)
|
---|
| 58 | echo -n "\n${WARNING}Unknown device type: ${dtype}"
|
---|
| 59 | echo "${NORMAL}"
|
---|
| 60 | ;;
|
---|
| 61 | esac
|
---|
| 62 | ;;
|
---|
| 63 | *)
|
---|
| 64 | echo "\n${WARNING}Unknown type: ${type}${NORMAL}"
|
---|
| 65 | continue
|
---|
| 66 | ;;
|
---|
| 67 | esac
|
---|
| 68 |
|
---|
| 69 | # Set up the permissions, too.
|
---|
| 70 | chown ${usr}:${grp} "${name}"
|
---|
| 71 | chmod ${perm} "${name}"
|
---|
| 72 | fi
|
---|
| 73 | done
|
---|
| 74 | exec 0>&9 9>&-
|
---|
| 75 | }
|
---|
| 76 |
|
---|
| 77 | case "${1}" in
|
---|
| 78 | start)
|
---|
| 79 | message="Cleaning file systems: "
|
---|
| 80 |
|
---|
| 81 | message="${message}${INFO} /tmp"
|
---|
| 82 | find /tmp -xdev -mindepth 1 ! -name lost+found \
|
---|
| 83 | -delete || failed=1
|
---|
| 84 |
|
---|
| 85 | message="${message} /var/lock"
|
---|
| 86 | find /var/lock -type f -exec rm -f {} \; || failed=1
|
---|
| 87 |
|
---|
| 88 | message="${message} /var/run${NORMAL}"
|
---|
| 89 | find /var/run ! -type d ! -name utmp -exec rm -f {} \; || failed=1
|
---|
| 90 |
|
---|
| 91 | > /var/run/utmp
|
---|
| 92 | if grep -q '^utmp:' /etc/group ; then
|
---|
| 93 | chmod 664 /var/run/utmp
|
---|
| 94 | chgrp utmp /var/run/utmp
|
---|
| 95 | fi
|
---|
| 96 |
|
---|
| 97 | (exit ${failed})
|
---|
| 98 | evaluate_retval standard
|
---|
| 99 |
|
---|
| 100 | if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null
|
---|
| 101 | then
|
---|
| 102 | message="Creating files and directories..."
|
---|
| 103 | create_files
|
---|
| 104 | evaluate_retval standard
|
---|
| 105 | fi
|
---|
| 106 | ;;
|
---|
| 107 | *)
|
---|
| 108 | echo "Usage: ${0} {start}"
|
---|
| 109 | exit 1
|
---|
| 110 | ;;
|
---|
| 111 | esac
|
---|
| 112 |
|
---|
| 113 | # End /etc/init.d/cleanfs
|
---|