cleartmp revision 1.9
1#!/bin/sh
2#
3# $NetBSD: cleartmp,v 1.9 2007/02/15 08:47:38 xtraeme Exp $
4#
5
6# PROVIDE: cleartmp
7# REQUIRE: mountall
8# BEFORE:  DAEMON
9
10$_rc_subr_loaded . /etc/rc.subr
11
12name="cleartmp"
13rcvar="clear_tmp"
14start_cmd="cleartmp_start"
15stop_cmd=":"
16
17cleartmp_start()
18{
19	echo "Clearing temporary files."
20	#
21	#	Prune quickly with one rm, then use find to clean up
22	#	/tmp/[lq]* (this is not needed with mfs /tmp, but
23	#	doesn't hurt anything).
24	#
25	if checkyesno per_user_tmp && [ -d ${per_user_tmp_dir} ]; then
26		tmp_dir=${per_user_tmp_dir}
27	else
28		tmp_dir="/tmp"
29		# Check if /tmp was created by the perusertmp rc.d
30		# script and recreate it if necessary.
31		if [ "$(/usr/bin/readlink /tmp)" = ${per_user_tmp_dir}/@uid ]; then
32			/bin/rm -rf ${tmp_dir}
33			/bin/mkdir ${tmp_dir}
34			/usr/sbin/chown root:wheel ${tmp_dir}
35			/bin/chmod 1777 ${tmp_dir}
36		fi
37	fi
38
39	(cd ${tmp_dir} && rm -rf [a-km-pr-zA-Z]* &&
40	    find -x . ! -name . ! -name lost+found ! -name quota.user \
41		! -name quota.group -exec rm -rf -- {} \; -type d -prune)
42}
43
44load_rc_config $name
45run_rc_command "$1"
46