/bin/bash: bad interpreter: Text file busy Error and Solution

by Vivek Gite on January 6, 2009 · 5 comments

Q. I'm getting an error as follows while trying to run a shell script over remote ssh session:

./myscript.sh
/bin/bash: bad interpreter: Text file busy

How do I fix this error message and run the script?

A. This error means some other process or user is accessing your file. Your script file is open and hence bash giving out this error.

To list open file use lsof command, enter:
# lsof | grep myscript.sh
Sample output:

cat       4995      root    1w      REG                8,2     1374   28409914 /home/vivek/myscript.sh
cat       5031      root    1w      REG                8,2     1374   28409914 /home/vivek/myscript.sh
cat       5069      root    1w      REG                8,2     1374   28409914 /home/vivek/myscript.sh

You can wait or simply kill those process with kill command:
# kill 4995 5031 5069
Now, try to run script again:
# ./myscript.sh

Featured Articles:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 5 comments… read them below or add one }

1 richard January 7, 2009

I had type this command :
pkill myscript.sh

but if you want use lsof the -t option show only the PID :
kill `lsof -t myscript.sh`

Reply

2 Vivek Gite January 7, 2009

Richard,

Thanks for pointing out -t option.

Reply

3 richard January 7, 2009

Sorry,

for pkill command I forgot the option -f :
pkill -f myscript.sh

Reply

4 David Sharnoff December 15, 2009

How about a real solution: allow interpreters to run files that are open and locked! This (recent) kernel change sucks.

Reply

5 Deepti June 28, 2011

My problem occurred coz I transferred the script from a windows machine to linux. Once I converted it to unix compatible file (using dos2unix command) the problem went away

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 12 + 2 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.




Previous post:

Next post: