cleanvar revision 202218
1100280Sgordon#!/bin/sh
2100280Sgordon#
3118638Sfjoe# $FreeBSD: head/etc/rc.d/cleanvar 202218 2010-01-13 19:07:48Z ed $
466830Sobrien#
566830Sobrien
666830Sobrien# PROVIDE: cleanvar
766830Sobrien# REQUIRE: FILESYSTEMS var
866830Sobrien
966830Sobrien. /etc/rc.subr
1066830Sobrien
1166830Sobrienname="cleanvar"
1266830Sobrienrcvar=`set_rcvar`
1366830Sobrien
1466830Sobrienstart_precmd="${name}_prestart"
1566830Sobrienstart_cmd="${name}_start"
1666830Sobrienstop_cmd=":"
1766830Sobrien
1866830Sobrienextra_commands="reload"
1966830Sobrienreload_cmd="${name}_start"
2066830Sobrien
2166830Sobrienpurgedir()
2266830Sobrien{
2366830Sobrien	local dir file
2466830Sobrien
2566830Sobrien	if [ $# -eq 0 ]; then
2666830Sobrien		purgedir .
2751231Ssheldonh	else
28100280Sgordon		for dir
29108191Sdillon		do
30127663Sluigi		(
31108191Sdillon			cd "$dir" && for file in .* *
32108191Sdillon			do
33127663Sluigi				# Skip over logging sockets
34127663Sluigi				[ -S "$file" -a "$file" = "log" ] && continue
35127663Sluigi				[ -S "$file" -a "$file" = "logpriv" ] && continue
36127663Sluigi				[ ."$file" = .. -o ."$file" = ... ] && continue
37108191Sdillon				if [ -d "$file" -a ! -L "$file" ]
38127663Sluigi				then
39127663Sluigi					purgedir "$file"
40127663Sluigi				else
41108191Sdillon					rm -f -- "$file"
42127663Sluigi				fi
43127663Sluigi			done
44127663Sluigi		)
45127663Sluigi		done
46149170Sbrooks	fi
47127663Sluigi}
48127663Sluigi
49229783Suqscleanvar_prestart()
50127663Sluigi{
51127663Sluigi	# These files must be removed only the first time this script is run
52127663Sluigi	# on boot.
53149170Sbrooks	#
54130151Sschweikh	rm -f /var/run/clean_var /var/spool/lock/clean_var
55127663Sluigi}
56229783Suqs
57149170Sbrookscleanvar_start () 
58229783Suqs{
59108191Sdillon	if [ -d /var/run -a ! -f /var/run/clean_var ]; then
60127663Sluigi		purgedir /var/run
61127663Sluigi		# And an initial utmpx active session file
62126787Sphk		(cd /var/run && cp /dev/null utx.active && chmod 644 utx.active)
63127663Sluigi		>/var/run/clean_var
64108191Sdillon	fi
65127663Sluigi	if [ -d /var/spool/lock -a ! -f /var/spool/lock/clean_var ]; then
66127663Sluigi		purgedir /var/spool/lock
67127663Sluigi		>/var/spool/lock/clean_var
68127663Sluigi	fi
69127663Sluigi	rm -rf /var/spool/uucp/.Temp/*
70127663Sluigi}
71108191Sdillon
72179014Sbmsload_rc_config $name
73179014Sbmsrun_rc_command "$1"
74179014Sbms