这对我来说是一个新问题:这个错误是什么指示?
/usr/bin/perl: bad interpreter: Text file busy
有一对夫妇当时正在执行磁盘密集型过程,但我从来没有看到消息之前,其实,这是第一次,我能记住尝试运行Perl脚本时,得到一个错误。 等待几秒钟后,我就能够运行它,因为还没有看到这个问题,但它会是不错的对此的解释。
运行Ubuntu 9.04,文件系统是EXT3。
这对我来说是一个新问题:这个错误是什么指示?
/usr/bin/perl: bad interpreter: Text file busy
有一对夫妇当时正在执行磁盘密集型过程,但我从来没有看到消息之前,其实,这是第一次,我能记住尝试运行Perl脚本时,得到一个错误。 等待几秒钟后,我就能够运行它,因为还没有看到这个问题,但它会是不错的对此的解释。
运行Ubuntu 9.04,文件系统是EXT3。
我猜你遇到了这个问题 。
Linux内核会生成一个bad interpreter: Text file busy
,如果你的Perl脚本(或任何其他类型的脚本)为您开放,写作,当您尝试执行它的错误。
你不说什么磁盘密集型进程在干什么。 是否有可能其中一人打开脚本读+写访问(即使它实际上并没有写任何东西)?
这是因为该脚本文件是开放的写作,可能是由尚未终止流氓进程。
解决方法:检查什么进程仍在访问该文件,并终止它。
例如:
# /root/wordpress_plugin_updater/updater.pl --wp-path=/var/www/virtual/joel.co.in/drjoel.in/htdocs
-bash: /root/wordpress_plugin_updater/updater.pl: /root/perl/bin/perl: bad interpreter: Text file busy
运行lsof
脚本名称(列表打开文件命令):
# lsof | grep updater.pl
sftp-serv 4416 root 3r REG 144,103 11043 33046751 /root/wordpress_plugin_updater/updater.pl
杀死它的PID的进程:
kill -9 4416
现在,尝试再次运行该脚本。 它现在。
# /root/wordpress_plugin_updater/updater.pl --wp-path=/www/htdocs
Wordpress Plugin Updater script v3.0.1.0.
Processing 24 plugins from
如果您使用的GNU平行,你会看到这个错误,那么这可能是因为你在从你正在写的文件出了同一个地方流媒体文件...
这始终与Perl解释器(在/ usr / bin中/ perl的)不可访问做。 事实上,它发生在一个shell脚本运行或AWK或任何是在#! 在脚本的顶线。
原因可能是很多事情......烫发,锁定的文件,文件系统离线,和和。
这显然依靠什么在你运行它时,这个问题发生的确切时刻发生。 但我希望答案是什么,你所期待的。
如果脚本是在Windows,或任何其他操作系统与不同的“天然的”行结束编辑,它可以作为一个是简单CR(^M)
“隐藏”在第一行的末尾。 六改善可设置隐藏此非本地行结束。 在我而言,我只是重新键入VI违规的第一行和错误走了。