]>
Commit | Line | Data |
---|---|---|
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. | |
19 | create_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 | ||
72 | case "${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 | ;; | |
155 | esac | |
156 | ||
157 | # End $rc_base/init.d/cleanfs |