У меня есть скрипт Bash со всеми разрешениями на исключение, я присоединяю его к заданию cron, этот скрипт в основном только убивает и перезапускает определенный процесс, странное поведение в том, что если я запускаю скрипт через терминал, все работает нормально как и ожидалось, он выкрикивает процесс и перезапускает его, но когда запускается задание cron, он только выкрикивает процесс и ничего более ... есть идеи, почему происходит такое поведение? Спасибо

1 ответ1

4

Помните, что скрипт, работающий в cron , не имеет той же среды, что и скрипт, работающий в оболочке.

Демон cron запускает подоболочку из вашего каталога HOME.

Демон cron предоставляет среду по умолчанию для каждой оболочки, определяя HOME, LOGNAME, SHELL (=/usr/bin/sh) и PATH (=/usr/bin).

Не зависит от переменных среды. Это включает в себя настройку пути, настройки x11 или что-то еще.

Используйте полный путь, например:

вместо простого вызова Java или Python вы должны использовать /usr/bin/java или /usr/bin/python.

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