1

Это должно быть просто, но, похоже, не работает. У меня есть очень простой скрипт, запускаемый cron:

export MAILTO=foo@foo.com
MAILTO=foo@foo.com
echo "MAILTO is set to $MAILTO"

Однако Cron, похоже, не получает переменную MAILTO - электронные письма cron частично выглядят так:

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/deploy>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=deploy>
Date: Thu, 20 Sep 2012 13:05:01 -0700

MAILTO is set to foo@foo.com

Что мне не хватает? Почему cron не выбирает переменные окружения, установленные в скрипте?

3 ответа3

1

Процесс в Unix может изменять свои собственные переменные среды и может определять свои дочерние переменные среды при создании этих дочерних элементов. Процесс не может изменить переменные окружения своего родителя, его потомков после создания этих потомков или любого другого процесса.

Похоже, что вы пытаетесь заставить задание cron изменить переменные окружения cron, что невозможно.

0

Я предполагаю, что вы не вошли в систему как тот же пользователь, под которым работает cron. Отсюда и возникает расхождение.

0

Установите переменную среды MAILTO в файле crontab . cron просто игнорирует переменные окружения по соображениям безопасности. Если MAILTO не указано, то выходные данные будут отправлены по почте владельцу процесса, который создал выходные данные.

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