NetBSD-5.0.2/etc/rc.d/cleartmp

#!/bin/sh
#
# $NetBSD: cleartmp,v 1.10 2007/12/04 22:09:01 mjf Exp $
#

# PROVIDE: cleartmp
# REQUIRE: mountall
# BEFORE:  DAEMON

$_rc_subr_loaded . /etc/rc.subr

name="cleartmp"
rcvar="clear_tmp"
start_cmd="cleartmp_start"
stop_cmd=":"

cleartmp_start()
{
	echo "Clearing temporary files."
	#
	#	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).
	#
	if checkyesno per_user_tmp && [ -d ${per_user_tmp_dir} ]; then
		tmp_dir=${per_user_tmp_dir}
	else
		tmp_dir="/tmp"
		# Check if /tmp was created by the perusertmp rc.d
		# script and recreate it if necessary.
		if [ "$(/usr/bin/readlink /tmp)" = ${per_user_tmp_dir}/@ruid ]; then
			/bin/rm -rf ${tmp_dir}
			/bin/mkdir ${tmp_dir}
			/usr/sbin/chown root:wheel ${tmp_dir}
			/bin/chmod 1777 ${tmp_dir}
		fi
	fi

	(cd ${tmp_dir} && 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)
}

load_rc_config $name
run_rc_command "$1"