[arch-general] Holy Cow -- What happened to bash / vi??
Gerardo Exequiel Pozzi
vmlinuz386 at yahoo.com.ar
Tue Jun 23 01:39:33 EDT 2009
David C. Rankin wrote:
<snip>
> I get this new message:
>
> [00:08 archangel:/etc] # noc fstab
> bash: /usr/local/bin/noc: /bin/bash: bad interpreter: Text file busy
>
>
<snip>
> Text file busy?? It's a text file, it's not busy, it's either saved or you
> get what was present the last time it was saved, but it certainly isn't busy.
>
>
<snip>
"Text file busy" is not related with text files :)
Text refers to the "text section" of the executable. The text section of an executable is where the code resides, in other words the real program.
This message appears when a process is running and you try to overwrite it, for example:
[root at gerardo ~]# lsof -n | grep "sbin/init"
init 1 root txt REG 8,1 31352 1079262 /sbin/init <<< note the 'txt' at 4th field.
[root at gerardo ~]# echo 'hola' > /sbin/init
-bash: /sbin/init: Text file busy
But in this case is different, you are open(2) a file in read/write mode (O_RDWR), and you tried to execute it execve(2). This is impossible.
Again lsof help to view this:
[djgera at gerardo ~]$ vi coco.sh
[djgera at gerardo ~]$ lsof -n | grep coco.sh
vi 4127 djgera 4uW REG 8,6 32 113481 /home/djgera/coco.sh #### see the 'W' in 4th field.
[djgera at gerardo ~]$ ./coco.sh
bash: ./coco.sh: /bin/bash: bad interpreter: Text file busy
Another simple example:
[djgera at gerardo ~]$ cat coco.sh
#!/bin/bash
echo "Hola mundo!"
[djgera at gerardo ~]$ cat coco.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#define __USE_GNU
#include <fcntl.h>
int main(int argc, char *argv[])
{
int coco;
coco = open("./coco.sh", O_RDWR);
sleep(60);
close(coco);
return(0);
}
[djgera at gerardo ~]$ gcc coco.c -o coco
[djgera at gerardo ~]$ ./coco &
[1] 4234
[djgera at gerardo ~]$ lsof -n | grep coco.sh
coco 4234 djgera 3u REG 8,6 32 113481 /home/djgera/coco.sh #### See the 'u' in 4th field.
[djgera at gerardo ~]$ ./coco.sh
bash: ./coco.sh: /bin/bash: bad interpreter: Text file busy
Good Luck!
(sorry my english)
--
Gerardo Exequiel Pozzi ( djgera )
http://www.djgera.com.ar
KeyID: 0x1B8C330D
Key fingerprint = 0CAA D5D4 CD85 4434 A219 76ED 39AB 221B 1B8C 330D
More information about the arch-general
mailing list