232b6c98b4
systems are fully "ready to go". 'FILESYSTEMS' states: "This is a dummy dependency, for services which require file systems to be mounted before starting." However, we have 'var' which is was run after 'FILESYSTEMS' and can mount /var if it already isn't mounted. Furthermore, several scripts cannot use /var until 'cleanvar' has done its thing. Thus "FILESYSTEMS" hasn't really meant all critical file systems are fully usable.
72 lines
1.2 KiB
Bash
Executable File
72 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: cleanvar
|
|
# REQUIRE: var
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="cleanvar"
|
|
rcvar="cleanvar_enable"
|
|
|
|
start_precmd="${name}_prestart"
|
|
start_cmd="${name}_start"
|
|
stop_cmd=":"
|
|
|
|
extra_commands="reload"
|
|
reload_cmd="${name}_start"
|
|
|
|
purgedir()
|
|
{
|
|
local dir file
|
|
|
|
if [ $# -eq 0 ]; then
|
|
purgedir .
|
|
else
|
|
for dir
|
|
do
|
|
(
|
|
cd "$dir" && for file in .* *
|
|
do
|
|
# Skip over logging sockets
|
|
[ -S "$file" -a "$file" = "log" ] && continue
|
|
[ -S "$file" -a "$file" = "logpriv" ] && continue
|
|
[ ."$file" = .. -o ."$file" = ... ] && continue
|
|
if [ -d "$file" -a ! -L "$file" ]
|
|
then
|
|
purgedir "$file"
|
|
else
|
|
rm -f -- "$file"
|
|
fi
|
|
done
|
|
)
|
|
done
|
|
fi
|
|
}
|
|
|
|
cleanvar_prestart()
|
|
{
|
|
# These files must be removed only the first time this script is run
|
|
# on boot.
|
|
#
|
|
rm -f /var/run/clean_var /var/spool/lock/clean_var
|
|
}
|
|
|
|
cleanvar_start()
|
|
{
|
|
if [ -d /var/run -a ! -f /var/run/clean_var ]; then
|
|
purgedir /var/run
|
|
>/var/run/clean_var
|
|
fi
|
|
if [ -d /var/spool/lock -a ! -f /var/spool/lock/clean_var ]; then
|
|
purgedir /var/spool/lock
|
|
>/var/spool/lock/clean_var
|
|
fi
|
|
rm -rf /var/spool/uucp/.Temp/*
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|