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

Почему PATH неверен с записью в cron?

У меня есть запись в cron.d:

31 17 * * * root /home/some_user/.bash_profile; /home/some_user/bin/some_script

Профиль устанавливает конкретный путь, и я повторяю текущий путь в профиле, чтобы убедиться, что он правильный. Но когда скрипт выполняется, команда в нем не выполняется, потому что он не находится в PATH, и когда я показываю текущий PATH в скрипте - это не то, что было установлено в профиле.

Почему PATH, установленный в профиле, не сохраняется при выполнении скрипта?

Чтобы установить желаемые переменные среды, вам необходимо получить .bash_profile файл с . /home/some_user/.bash_profile. В вашем случае вы выполняете файл bash_profile, который в основном выполнит этот файл и выйдет из оболочки. При следующем запуске some_script он запустится с новыми переменными среды. Проверьте эту ссылку - поиск против выполнения

Другой вариант - установить PATH переменная окружения в верхней части файла crontab. Таким образом, это будет видно остальным скриптам.