freebsd-skq/etc/rc.d/cleartmp
dougb c9292fd995 Clear up problems with /etc/rc.d/{abi|cleanvar|cleartmp} brought
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
2005-12-19 10:57:00 +00:00

42 lines
908 B
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: cleartmp
# REQUIRE: mountcritremote tmp
# BEFORE: DAEMON
. /etc/rc.subr
name="cleartmp"
rcvar=`set_rcvar clear_tmp`
start_cmd="${name}_start"
cleartmp_start()
{
local x11_socket_dirs="/tmp/.X11-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/.XIM-unix"
echo "Clearing /tmp."
#
# Prune quickly with one rm, then use find to clean up
# /tmp/[lq]* (this is not needed with mfs /tmp, but
# doesn't hurt anything).
#
(cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
find -x . ! -name . ! -name lost+found ! -name quota.user \
! -name quota.group -exec rm -rf -- {} \; -type d -prune)
# Remove X lock files, since they will prevent you from restarting X.
rm -f /tmp/.X[0-9]-lock
# Create socket directories with correct permissions to avoid
# security problem.
#
rm -fr ${x11_socket_dirs}
mkdir -m 1777 ${x11_socket_dirs}
}
load_rc_config $name
run_rc_command "$1"