Назад | Перейти на главную страницу

Ошибка cronjob «/ bin / sh: / путь / к / файлу: нет такого файла или каталога»

я установил программное обеспечение python, которое позволяет запускать javascript на сервере

я поместил двоичный файл (jsrunner) по этому адресу

/usr/local/bin/jsrunner

поэтому в ssh, когда я пытаюсь, он отлично работает

/usr/local/bin/jsrunner /home/domain/public_html/test.js

и я получаю результат от test.js

поэтому я поставил ту же самую команду в cronjob

* * * * * /usr/local/bin/jsrunner /home/domain/public_html/test.js

но через некоторое время я не получил ожидаемого результата, поэтому я включил отчет по электронной почте о cronjob и получил письмо с таким заголовком

Cron <domain@CentOS-67-64-minimal> /usr/local/bin/jsrunner /home/domain/public_html/test.js

содержать эту ошибку

/bin/sh: /usr/local/bin/jsrunner: No such file or directory

почему есть /bin/sh: в начале хвалить? почему он не может найти файл, когда я запускаю его из cronjob?

пожалуйста, обратите внимание, что моя cronjob отлично работает для других файлов, таких как php, с использованием curl или двоичного файла, только этот конкретный файл программного обеспечения / bin вызывает эту ошибку

У меня это работает на других моих серверах, просто этот новый сервер выдает ошибку и только на cronjob

У меня была в основном такая же проблема, но с двоичным файлом inkscape. Он отлично работает через apache, но не работает через nginx. Корень проблемы - переменная окружения PATH.

Например из cron

# crontab -l
* * * * * echo $PATH > /tmp/path.log

# cat /tmp/path.log
/usr/bin:/bin

С консоли

# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/nodejs/bin