Date: Tue, 17 Oct 2006 21:31:33 +0400 From: Yar Tikhiy <yar@comp.chem.msu.su> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Cc: Maxime Henrion <mux@FreeBSD.org>, Andrzej Tobola <ato@iem.pw.edu.pl> Subject: Re: cvs commit: src/etc/rc.d cleartmp Message-ID: <20061017173133.GD70184@comp.chem.msu.su> In-Reply-To: <200610161301.k9GD1j0C074012@repoman.freebsd.org> References: <200610161301.k9GD1j0C074012@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 16, 2006 at 01:01:45PM +0000, Yar Tikhiy wrote: > yar 2006-10-16 13:01:45 UTC > > FreeBSD src repository > > Modified files: > etc/rc.d cleartmp > Log: > Improve cleartmp in a number of aspects: > > + Use rc.subr(8) features properly. > + Do the whole job of obliterating /tmp contents in find(1). > + Leave lost+found and quota.{user,group} in /tmp only if root-owned. > + Make the overall structure clearer by first removing the X dirs > (perhaps along with the rest of /tmp) and then re-creating them. > + Use "find -exec rm -rf {} +" for efficiency: each rm instance gets > a chance to kill as much files in /tmp as ARG_MAX permits. I was asked a few times why "-prune -exec rm -rf" had been chosen over "-delete". My initial reason was that -delete would keep bogus lost+found and quota.{user,group} entries found in subdirs of /tmp. Well, on second thought, the find command line can be tweaked so that -delete works as wanted. E.g.: cd /tmp && find -x . ! -name . \ ! \( -path ./lost+found -type d -user root \) \ ! \( \( -path ./quota.user -or -path ./quota.group \) \ -type f -user root \) \ -delete Note using -path in place of -name. However, it has recently been found that our fts(3) implementation is unable to handle very deep trees -- see PR bin/104458. While the bug hits both rm and find, rm has a better chance to recover from it and gain the ability to remove virtually unlimited trees while find is doomed to retain much more inherent limitations due to its complex nature. Therefore I'm inclined to keep "-prune -exec rm -rf" as a more robust approach, at least potentially. So find has only to skim over /tmp while descending to its deeps is left to rm. > PR: bin/104044 > Submitted by: Andrey Simonenko <see PR for email> > Hacked by: yar > MFC after: 1 month > > Revision Changes Path > 1.18 +37 -36 src/etc/rc.d/cleartmp -- Yar
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061017173133.GD70184>