]> git.ipfire.org Git - ipfire-2.x.git/blame - src/initscripts/system/cleanfs
Merge branch 'next' into initscripts-cleanup
[ipfire-2.x.git] / src / initscripts / system / cleanfs
CommitLineData
73d9a908
MT
1#!/bin/sh
2########################################################################
3# Begin $rc_base/init.d/cleanfs
4#
5# Description : Clean file system
6#
7# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
8#
9# Version : 00.00
10#
11# Notes :
12#
13########################################################################
14
15. /etc/sysconfig/rc
16. ${rc_functions}
17
18# Function to create files/directory on boot.
19create_files() {
20 # Read in the configuration file.
21 exec 9>&0 < /etc/sysconfig/createfiles
22 while read name type perm usr grp dtype maj min junk
23 do
24
25 # Ignore comments and blank lines.
26 case "${name}" in
27 ""|\#*) continue ;;
28 esac
29
30 # Ignore existing files.
31 if [ ! -e "${name}" ]; then
32 # Create stuff based on its type.
33 case "${type}" in
34 dir)
35 mkdir "${name}"
36 ;;
37 file)
38 :> "${name}"
39 ;;
40 dev)
41 case "${dtype}" in
42 char)
43 mknod "${name}" c ${maj} ${min}
44 ;;
45 block)
46 mknod "${name}" b ${maj} ${min}
47 ;;
48 pipe)
49 mknod "${name}" p
50 ;;
51 *)
52 boot_mesg -n "\nUnknown device type: ${dtype}" ${WARNING}
53 boot_mesg "" ${NORMAL}
54 ;;
55 esac
56 ;;
57 *)
58 boot_mesg -n "\nUnknown type: ${type}" ${WARNING}
59 boot_mesg "" ${NORMAL}
60 continue
61 ;;
62 esac
63
64 # Set up the permissions, too.
65 chown ${usr}:${grp} "${name}"
66 chmod ${perm} "${name}"
67 fi
68 done
69 exec 0>&9 9>&-
70}
71
72case "${1}" in
73 start)
5b71042c
AF
74 if [[ ! -L "/var/run" ]]; then
75 boot_mesg "Repair /var/run symlink to /run..."
76 mv -u /var/run/* /run/ 2>&1 > /dev/null
77 rm -rf /var/run
78 ln -s ../run /var/run
79 fi
c4a451ee
AM
80 #
81 # create some folders
82 #
83 if [ ! -e /var/lock/subsys ]; then
84 mkdir -p /var/lock/subsys
85 fi
86 if [ ! -e /var/lock/time ]; then
87 mkdir -p /var/lock/time
88 chown nobody.root /var/lock/time
89 fi
90 if [ ! -e /var/run/clamav ]; then
91 mkdir -p /var/run/clamav
92 chown clamav:clamav /var/run/clamav
93 fi
94 if [ ! -e /var/run/cups ]; then
95 mkdir -p /var/run/cups
96 fi
97 if [ ! -e /var/run/dbus ]; then
98 mkdir -p /var/run/dbus
99 fi
100 if [ ! -e /var/run/mysql ]; then
101 mkdir -p /var/run/mysql
102 chown mysql:mysql /var/run/mysql
103 fi
104 if [ ! -e /var/run/saslauthd ]; then
105 mkdir -p /var/run/saslauthd
106 fi
107 if [ ! -e /var/log/vnstat ]; then
108 mkdir -p /var/log/vnstat
109 fi
73d9a908
MT
110 boot_mesg -n "Cleaning file systems:" ${INFO}
111
112 boot_mesg -n " /tmp" ${NORMAL}
113 cd /tmp &&
114 find . -xdev -mindepth 1 ! -name lost+found \
115 -delete || failed=1
116
55b4c7ed 117 boot_mesg -n " /var/ipfire/dhcp" ${NORMAL}
7f5fdd04
MT
118 cd /var/ipfire/dhcpc/ && find . -name "*.pid" -exec rm -f {} \; || failed=1
119 cd /var/ipfire/dhcpc/ && find . -name "*.cache" -exec rm -f {} \; || failed=1
120 cd /var/ipfire/dhcpc/ && find . -name "*.info" -exec rm -f {} \; || failed=1
55b4c7ed
MT
121
122 boot_mesg -n " /var/ipfire/red" ${NORMAL}
123 cd /var/ipfire/red/ && find . -name active -exec rm -f {} \; || failed=1
124
73d9a908
MT
125 boot_mesg -n " /var/lock" ${NORMAL}
126 cd /var/lock &&
127 find . -type f ! -newer /proc -exec rm -f {} \; || failed=1
128
0aa93f5b
DW
129 boot_mesg -n " /var/log/updatexlrator" ${NORMAL}
130 rm -f /var/log/updatexlrator/checkdeaddl.lck
131
73d9a908
MT
132 boot_mesg " /var/run" ${NORMAL}
133 cd /var/run &&
134 find . ! -type d ! -name utmp ! -newer /proc \
135 -exec rm -f {} \; || failed=1
136 > /var/run/utmp
137 if grep -q '^utmp:' /etc/group ; then
138 chmod 664 /var/run/utmp
139 chgrp utmp /var/run/utmp
140 fi
141
142 (exit ${failed})
143 evaluate_retval
144
145 if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
146 boot_mesg "Creating files and directories..."
147 create_files
148 evaluate_retval
149 fi
150 ;;
151 *)
152 echo "Usage: ${0} {start}"
153 exit 1
154 ;;
155esac
156
157# End $rc_base/init.d/cleanfs