я установил программное обеспечение 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