Почему PATH неверен при записи в cron? [дубликат]

На этот вопрос уже есть ответ здесь:

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

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

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

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

1
задан 28 April 2015 в 11:22
1 ответ

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

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

9
ответ дан 3 December 2019 в 16:21

Теги

Похожие вопросы