ea871df08c
to light by the PR. Specifically, convert these three scripts into good rc.d citizens, making sure that their functionality is preserved, but the rc.d framework rules are not broken. Add support for cleanvar as a regular rc.d script in the default rc.conf, and document this in the man page. Add a descriptive comment to rc.conf that regarding the three emulation/compatibility services provided by abi so users will not be confused by these services not having their own startup scripts. PR: conf/84574 Submitted by: Alexander Botero-Lowry
74 lines
1.2 KiB
Bash
74 lines
1.2 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: cleanvar
|
|
# REQUIRE: mountcritlocal var
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="cleanvar"
|
|
rcvar=`set_rcvar`
|
|
|
|
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
|
|
# And an initial utmp file
|
|
(cd /var/run && cp /dev/null utmp && chmod 644 utmp;)
|
|
>/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"
|