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
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 6 comments… read them below or add one }
I had type this command :
pkill myscript.shbut if you want use lsof the -t option show only the PID :
kill `lsof -t myscript.sh`Richard,
Thanks for pointing out -t option.
Sorry,
for pkill command I forgot the option -f :
pkill -f myscript.shHow about a real solution: allow interpreters to run files that are open and locked! This (recent) kernel change sucks.
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
in my case he throws that error after writing a lot of entries to a log file using phps error_log()