cleartmp revision 1.10
11.1Slukem#!/bin/sh
21.1Slukem#
31.10Smjf# $NetBSD: cleartmp,v 1.10 2007/12/04 22:09:01 mjf Exp $
41.1Slukem#
51.1Slukem
61.1Slukem# PROVIDE: cleartmp
71.1Slukem# REQUIRE: mountall
81.4Sthorpej# BEFORE:  DAEMON
91.1Slukem
101.5Smycroft$_rc_subr_loaded . /etc/rc.subr
111.1Slukem
121.1Slukemname="cleartmp"
131.3Slukemrcvar="clear_tmp"
141.1Slukemstart_cmd="cleartmp_start"
151.1Slukemstop_cmd=":"
161.1Slukem
171.1Slukemcleartmp_start()
181.1Slukem{
191.8Selad	echo "Clearing temporary files."
201.1Slukem	#
211.1Slukem	#	Prune quickly with one rm, then use find to clean up
221.7Selad	#	/tmp/[lq]* (this is not needed with mfs /tmp, but
231.1Slukem	#	doesn't hurt anything).
241.1Slukem	#
251.9Sxtraeme	if checkyesno per_user_tmp && [ -d ${per_user_tmp_dir} ]; then
261.8Selad		tmp_dir=${per_user_tmp_dir}
271.8Selad	else
281.8Selad		tmp_dir="/tmp"
291.9Sxtraeme		# Check if /tmp was created by the perusertmp rc.d
301.9Sxtraeme		# script and recreate it if necessary.
311.10Smjf		if [ "$(/usr/bin/readlink /tmp)" = ${per_user_tmp_dir}/@ruid ]; then
321.9Sxtraeme			/bin/rm -rf ${tmp_dir}
331.9Sxtraeme			/bin/mkdir ${tmp_dir}
341.9Sxtraeme			/usr/sbin/chown root:wheel ${tmp_dir}
351.9Sxtraeme			/bin/chmod 1777 ${tmp_dir}
361.9Sxtraeme		fi
371.8Selad	fi
381.8Selad
391.8Selad	(cd ${tmp_dir} && rm -rf [a-km-pr-zA-Z]* &&
401.1Slukem	    find -x . ! -name . ! -name lost+found ! -name quota.user \
411.7Selad		! -name quota.group -exec rm -rf -- {} \; -type d -prune)
421.1Slukem}
431.1Slukem
441.2Slukemload_rc_config $name
451.1Slukemrun_rc_command "$1"
46