/usr/bin / perl: mal intérprete: Archivo de texto ocupado


Esto es nuevo para mí: ¿Qué indica este error?

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

Había un par de procesos intensivos en disco que se ejecutan en el momento, pero nunca he visto ese mensaje antes-de hecho, esta es la primera vez que puedo recordar obtener 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.

Author: cjm, 2009-09-06

5 answers

Supongo que has encontrado este problema.

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

Usted no dice lo que los procesos intensivos en disco estaban haciendo. ¿Es posible que uno de ellos tuviera el script abierto para acceso de lectura y escritura (incluso si en realidad no estaba escribiendo nada)?

 20
Author: cjm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-12 09:56:37

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

Solución: Compruebe qué proceso sigue accediendo al archivo y terminarlo.

Eg:

# /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 open files) 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 intente ejecutar el script de nuevo. Ahora funciona.

# /root/wordpress_plugin_updater/updater.pl --wp-path=/www/htdocs
Wordpress Plugin Updater script v3.0.1.0.
Processing 24 plugins from
 3
Author: Droidzone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-28 15:42:03

Si está usando gnu parallel y ve este error, entonces puede ser porque está transmitiendo un archivo desde el mismo lugar donde está escribiendo el archivo...

 2
Author: OwenRackham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-30 05:03:50

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

La causa puede ser muchas cosas ... permanentes, archivo bloqueado, sistema de archivos sin conexión, 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.

 1
Author: Rap,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-05 22:42:36

Si el script se editó en Windows, o en cualquier otro sistema operativo con diferentes terminaciones de línea "nativas", podría ser tan simple como un CR(^M) "ocultar" al final de la primera línea. Vi mejorado se puede configurar para ocultar este final de línea no nativo. En mi caso, simplemente volví a escribir la primera línea ofensiva en VI y el error desapareció.

 0
Author: Linux User,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-30 21:22:21