[BACK]Return to cleartmp CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc / rc.d

File: [cvs.NetBSD.org] / src / etc / rc.d / cleartmp (download)

Revision 1.12, Fri Jul 3 18:36:54 2015 UTC (3 years, 8 months ago) by dholland
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-base, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: pgoyette-compat
Changes since 1.11: +2 -2 lines

/usr/sbin/chown -> /sbin/chown
(not sure why these need explicit paths at all, but whatevs)

#!/bin/sh
#
# $NetBSD: cleartmp,v 1.12 2015/07/03 18:36:54 dholland 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."
	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}
			/sbin/chown root:wheel ${tmp_dir}
			/bin/chmod 1777 ${tmp_dir}
		fi
	fi

	#
	#	Delete almost everything, except lost+found, quota.user,
	#	and quota.group in the top level.  (This is not needed
	#	with mfs or tmpfs /tmp, but doesn't hurt anything).
	#
	#	The find command, with "-exec ... +" instead of "-exec
	#	... \;", will pass many file or dir names to each
	#	invocation of "rm -rf".  We avoid using any glob
	#	patterns because of the risk of "Arg list too long"
	#	errors when there are very many files.
	#
	(cd ${tmp_dir} &&
	    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"