1

У меня есть скрипт, который отлично работает, если я запускаю его из командной строки вручную. Однако при запуске через cron задание не выполняется со следующей ошибкой:

/usr/bin/env: escript: Нет такого файла или каталога

Первая строка в скрипте:

#!/usr/bin/env escript

Единственное, что я могу понять, это то, что escript не найден, и это потому, что он установлен не в /usr /bin, а в подкаталоге домашнего каталога пользователя.

Мое понимание - возможно, неправильное понимание - cron заключается в том, что cron выполняет каждое задание в crontab пользователя под UID/GID пользователя. Не должно ли оно также наследовать переменную PATH от пользователя? Должно ли все быть указано как абсолютные пути?

2 ответа2

1

Cron запускается под UID пользователя, но с минимальным PATH . Ваш скрипт должен использовать полный путь к интерпретатору (escript) или вам нужно установить PATH в crontab.

0

cron не наследует PATH от интерактивной настройки пользователя. PATH установлен в "/usr/bin:/bin"

Ypu может устанавливать переменные окружения в строке crontab

Смотрите man crontab для деталей, например, man crontab

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .