/ usr / bin / perl: плохой интерпретатор: текстовый файл занят
Это новый для меня: что означает эта ошибка?
/usr/bin/perl: bad interpreter: Text file busy
в то время было запущено несколько диско-интенсивных процессов, но я никогда не видел этого сообщения раньше-на самом деле, это первый раз, когда я могу вспомнить, что получил ошибку при попытке запустить скрипт Perl. После нескольких секунд ожидания я смог запустить его и с тех пор не видел проблему, но было бы неплохо иметь объяснение этому.
запуск Ubuntu 9.04, файл система с ext3.
5 ответов
Я думаю, вы столкнулись этот вопрос.
ядро 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
Run 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 parallel, и вы видите эту ошибку, то это может быть потому, что вы передаете файл из того же места, где вы записываете файл...
это всегда связано с недоступностью интерпретатора perl (/usr/bin/perl). На самом деле, это происходит, когда сценарий оболочки работает или awk или что-то еще на #! строка в верхней части сценария.
причиной может быть многое ... perms, заблокированный файл, файловая система в автономном режиме и далее.
Это, очевидно, будет зависеть от того, что происходит в тот момент, когда вы запустили его, когда возникла проблема. Но я надеюсь, что ответ-это то, что вы искали.
если скрипт был отредактирован в Windows или любой другой ОС с разными "родными" окончаниями строк, это может быть так же просто, как CR(^M)
"прячется" в конце первой строки. Vi улучшено можно настроить до скрыть это не конец строки. В моем случае я просто перепечатал оскорбительную первую строку в VI, и ошибка исчезла.