cleanvar revision 180563
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/cleanvar 180563 2008-07-16 19:22:48Z dougb $
4#
5
6# PROVIDE: cleanvar
7# REQUIRE: FILESYSTEMS var
8
9. /etc/rc.subr
10
11name="cleanvar"
12rcvar=`set_rcvar`
13
14start_precmd="${name}_prestart"
15start_cmd="${name}_start"
16stop_cmd=":"
17
18extra_commands="reload"
19reload_cmd="${name}_start"
20
21purgedir()
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
49cleanvar_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
57cleanvar_start () 
58{
59	if [ -d /var/run -a ! -f /var/run/clean_var ]; then
60		purgedir /var/run
61		# And an initial utmp file
62		(cd /var/run && cp /dev/null utmp && chmod 644 utmp)
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
72load_rc_config $name
73run_rc_command "$1"
74