From owner-freebsd-current Sun Mar 5 07:23:56 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id HAA09153 for current-outgoing; Sun, 5 Mar 1995 07:23:56 -0800 Received: from Root.COM (implode.Root.COM [198.145.90.1]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id HAA09145 for ; Sun, 5 Mar 1995 07:23:51 -0800 Received: from corbin.Root.COM (corbin.Root.COM [198.145.90.18]) by Root.COM (8.6.8/8.6.5) with ESMTP id HAA00851; Sun, 5 Mar 1995 07:23:20 -0800 Received: from localhost (localhost [127.0.0.1]) by corbin.Root.COM (8.6.9/8.6.5) with SMTP id HAA00249; Sun, 5 Mar 1995 07:23:19 -0800 Message-Id: <199503051523.HAA00249@corbin.Root.COM> X-Authentication-Warning: corbin.Root.COM: Host localhost didn't use HELO protocol To: John Hay cc: current@FreeBSD.org Subject: Re: "Text file busy" with program not running anymore? In-reply-to: Your message of "Sat, 05 Mar 95 11:02:20 +0200." <199503050902.LAA18774@dolphin.mikom.csir.co.za> From: David Greenman Reply-To: davidg@Root.COM Date: Sun, 05 Mar 1995 07:23:16 -0800 Sender: current-owner@FreeBSD.org Precedence: bulk >I am running FreeBSD-current with a kernel of this morning, if this is >relevant. I have compiled a program, copied it with cp to another directory >and executed it from there. Then I changed the source, compiled it again and >when I tried to copy it, I got the "cp: /users/jhay/bin/u2d: Text file busy" >message. But the program is not running anymore. I have waited a few minutes, >thinking that there is some cache that have to timeout, but it did not help. > >Now it isn't the end of the world for me, I can just delete the file before >I copy the new one or use install. > >I would just like to know if this is expected behaviour or not? 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. -DG