Cron работает под UID пользователя, но с минимальным PATH
. Ваш сценарий должен использовать полный путь к интерпретатору (escript) или вам нужно установить его PATH
в crontab.
Сбой cronjob с / usr / bin / env
У меня есть скрипт, который отлично работает, если я запускаю его из командной строки вручную. Однако при запуске через cron задание не выполняется со следующей ошибкой:
/ usr / bin / env: escript: Нет такого файла или каталога
Первая строка в скрипте:
#!/usr/bin/env escript
Единственное, что я могу понять, это то, что escript не найден, и это потому, что он установлен не в / usr / bin, а в подкаталоге домашнего каталога пользователя.
Мое понимание - возможно, неправильное понимание - cron заключается в том, что cron выполняет каждое задание в crontab пользователя под UID / GID пользователя. Не должно ли оно также наследовать переменную PATH от пользователя? Должно ли все быть указано как абсолютные пути?
2 ответа на вопрос
cron не наследует PATH от интерактивной настройки пользователя. PATH установлен в "/ usr / bin: / bin"
Ypu может устанавливать переменные окружения в строке crontab
Смотрите man crontab для деталей, например, man crontab
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
9
"Отсоединить" и "Reattach" Xterms через X сессий?
-
-
1
Windows дата репрезентация
-
9
grep все файлы .java в каталоге для конкретной строки
-
1
Является ли kill -STOP временной командой?
-
2
Изменить количество строк и столбцов в VT420?
-
3
Mac OS X: обычные места, где должны жить бинарные файлы
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
2
Можно ли передать выходные данные одной команды двум другим командам?