Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 05 Mar 1995 13:33:08 -0800
From:      David Greenman <davidg@Root.COM>
To:        Poul-Henning Kamp <phk@ref.tfs.com>
Cc:        jhay@mikom.csir.co.za, current@FreeBSD.org
Subject:   Re: "Text file busy" with program not running anymore? 
Message-ID:  <199503052133.NAA00248@corbin.Root.COM>
In-Reply-To: Your message of "Sun, 05 Mar 95 10:20:56 PST." <199503051820.KAA18600@ref.tfs.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>>    It is expected. Whenever a file is executed, the VTEXT flag is set on the
>> vnode to indicate that someone is executing it. The flag remains set until
>> there are no references to it and it is no longer cached. In your case, it
>> lingered in the cache. It never 'times out' - the cached vnodes are replaced
>> with other cached vnodes - so it will only get out of the cache if there is
>> activity on the system to flush it out.
>>    It's conceivable that there could be a count instead of a flag...but this
>> complicates things quite a bit and I don't see the point in it. Just rm the
>> file first.
>Wouldn't the right thing be to flush it if it is opened for write ?

   No. Executed mapped files are a special case. I actually think that the
"text file busy" thing is generally a hack that should just be removed. I can
see no valid justification for preventing writes to executing files. If you
really don't want your executing process(es) to die, then unlinking the file
first is this the thing to do.

-DG



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503052133.NAA00248>