]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - etc/rc.d/cleanvar
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / etc / rc.d / cleanvar
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: cleanvar
7 # REQUIRE: var
8
9 . /etc/rc.subr
10
11 name="cleanvar"
12 rcvar="cleanvar_enable"
13
14 start_precmd="${name}_prestart"
15 start_cmd="${name}_start"
16 stop_cmd=":"
17
18 extra_commands="reload"
19 reload_cmd="${name}_start"
20
21 purgedir()
22 {
23         local dir file
24
25         if [ $# -eq 0 ]; then
26                 purgedir .
27         else
28                 for dir
29                 do
30                 (
31                         cd "$dir" && for file in .* *
32                         do
33                                 # Skip over logging sockets
34                                 [ -S "$file" -a "$file" = "log" ] && continue
35                                 [ -S "$file" -a "$file" = "logpriv" ] && continue
36                                 [ ."$file" = .. -o ."$file" = ... ] && continue
37                                 if [ -d "$file" -a ! -L "$file" ]
38                                 then
39                                         purgedir "$file"
40                                 else
41                                         rm -f -- "$file"
42                                 fi
43                         done
44                 )
45                 done
46         fi
47 }
48
49 cleanvar_prestart()
50 {
51         # These files must be removed only the first time this script is run
52         # on boot.
53         #
54         rm -f /var/run/clean_var /var/spool/lock/clean_var
55 }
56
57 cleanvar_start ()
58 {
59         if [ -d /var/run -a ! -f /var/run/clean_var ]; then
60                 purgedir /var/run
61                 # And an initial utmpx active session file
62                 (cd /var/run && cp /dev/null utx.active && chmod 644 utx.active)
63                 >/var/run/clean_var
64         fi
65         if [ -d /var/spool/lock -a ! -f /var/spool/lock/clean_var ]; then
66                 purgedir /var/spool/lock
67                 >/var/spool/lock/clean_var
68         fi
69         rm -rf /var/spool/uucp/.Temp/*
70 }
71
72 load_rc_config $name
73 run_rc_command "$1"