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

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

ADVERTISEMENTS

./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

🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallCentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNCentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
10 comments… add one
  • richard Jan 7, 2009 @ 9:05

    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`

    • 🐧 nixCraft Jan 7, 2009 @ 9:09

      Richard,

      Thanks for pointing out -t option.

    • Karthick Aug 14, 2013 @ 14:20

      dos2unix Try this ..it will work..it will convert from dos mode to unix mode…while transferring the file from dos to unix unwanted characters will be appended..the above cmd will solve this issue

      • Karthick Aug 14, 2013 @ 14:21

        dos2unix File_name

  • richard Jan 7, 2009 @ 9:11

    Sorry,

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

  • David Sharnoff Dec 15, 2009 @ 23:58

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

  • Deepti Jun 28, 2011 @ 11:41

    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

  • marco Sep 2, 2012 @ 16:20

    in my case he throws that error after writing a lot of entries to a log file using phps error_log()

  • abirami Feb 26, 2014 @ 10:12

    i install ubundu and iam trying to set single node for my project… while setting namenode we have to run one program.. when i tried to run it showing a bash error like this
    -bash:bin/hadoop:permission denied
    pls help me and reply me as soon as possible

  • Sam Oct 18, 2014 @ 9:53

    Thanks it worked. I was having an issue launching a game.

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.