linux perl interpreter ubuntu-9.04

linux - / usr/bin/perl: bad intérprete: archivo de texto ocupado



interpreter ubuntu-9.04 (5)

Esta es una nueva para mí: ¿Qué indica este error?

/usr/bin/perl: bad interpreter: Text file busy

Hubo un par de procesos intensivos en disco que se ejecutan en el momento, pero nunca antes había visto ese mensaje; de ​​hecho, esta es la primera vez que recuerdo haber cometido un error al intentar ejecutar un script de Perl. Después de unos segundos de espera, pude ejecutarlo y no he visto el problema desde entonces, pero sería bueno tener una explicación para esto.

Ejecutando Ubuntu 9.04, el sistema de archivos es ext3.


Esto siempre tiene que ver con el intérprete de Perl (/ usr / bin / perl) inaccesible. De hecho, sucede cuando se ejecuta un script de shell o awk o lo que sea que esté en el #! línea en la parte superior de la secuencia de comandos.

La causa puede ser muchas cosas ... permanentes, archivo bloqueado, sistema de archivos fuera de línea, y así sucesivamente.

Obviamente, dependería de lo que estaba sucediendo en el momento exacto en que lo ejecutó cuando ocurrió el problema. Pero espero que la respuesta sea lo que estabas buscando.


Esto sucede porque el archivo de script está abierto para la escritura, posiblemente por un proceso fraudulento que no ha finalizado.

Solución: compruebe qué proceso sigue accediendo al archivo y resáltelo.

P.ej:

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

Ejecute lsof (comando list files open) en el nombre del script:

# lsof | grep updater.pl sftp-serv 4416 root 3r REG 144,103 11043 33046751 /root/wordpress_plugin_updater/updater.pl

Mata el proceso por su PID:

kill -9 4416

Ahora intenta ejecutar el script nuevamente. Ahora funciona.

# /root/wordpress_plugin_updater/updater.pl --wp-path=/www/htdocs Wordpress Plugin Updater script v3.0.1.0. Processing 24 plugins from


Si el guión se editó en Windows o en cualquier otro sistema operativo con terminaciones de línea "nativas" diferentes, podría ser tan simple como un CR(^M) "oculto" al final de la primera línea. Vi improved se puede configurar para ocultar esta terminación de línea no nativa. En mi caso, simplemente reescribí la primera línea ofensiva en VI y el error desapareció.


Si usa gnu en paralelo y ve este error, puede deberse a que está transmitiendo un archivo desde el mismo lugar donde está escribiendo el archivo ...


Supongo que te encontraste con este problema .

El kernel de Linux generará un bad interpreter: Text file busy error de bad interpreter: Text file busy si su script de Perl (o cualquier otro tipo de script) está abierto para la escritura cuando intenta ejecutarlo.

No dice qué estaban haciendo los procesos intensivos en disco. ¿Es posible que uno de ellos haya abierto la secuencia de comandos para el acceso de lectura + escritura (incluso si en realidad no estaba escribiendo nada)?