GNU/Linux >> Linux の 問題 >  >> Linux

/usr/bin/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

スクリプトが Windows で編集された場合、または「ネイティブ」な行末が異なるその他の OS で編集された場合、CR(^M) のように単純なものになる可能性があります。 最初の行の最後に「隠す」。改善された Vi は、非表示 に設定できます この非ネイティブの行末。私の場合、問題のある最初の行を VI に再入力するだけで、エラーは消えました。


この問題に遭遇したと思います。

Linux カーネルは bad interpreter: Text file busy を生成します Perl スクリプト (またはその他の種類のスクリプト) を実行しようとしたときに書き込み用に開いていると、エラーが発生します。

ディスクを集中的に使用するプロセスが何をしていたかはわかりません。そのうちの 1 人がスクリプトを読み書きアクセス用に開いていた可能性はありますか (実際には何も書き込んでいなくても)?


これは常に、perl インタープリター (/usr/bin/perl) にアクセスできないことに関係しています。実際、シェルスクリプトが実行されているとき、または awk または #!スクリプトの先頭にある行。

原因はさまざまです... perms、ロックされたファイル、ファイルシステムのオフライン、およびオンとオフ。

問題が発生したときに実行した正確な瞬間に何が起こっていたかによって明らかに異なります。しかし、答えがあなたが探していたものであることを願っています.


Linux
  1. 「/usr/ bin / dirmngr」を修正する方法:そのようなファイルやディレクトリはありません

  2. / usr/binと/usr/ local / bin Linuxの場合?

  3. / bin/shが/bin/bashではなく/bin/ dashを指すのはなぜですか?

  1. Bash スクリプト:不適切なインタープリター

  2. ./configure :/bin/sh^M :不適切なインタープリター

  3. バイナリを /bin、/sbin、/usr/bin、および /usr/sbin にインストールし、 --prefix および DESTDIR と対話します

  1. ディレクトリの移動とファイルの実行を 1 つのコマンドで実行

  2. #!/usr/bin/env bash と #!/usr/bin/bash の違いは何ですか?

  3. cmake --version は /usr/bin/cmake を指し、どの cmake は /usr/local/bin を指しますか