cron이 환경 변수를 무시합니까?

cron이 환경 변수를 무시합니까?

이것은 간단해야 하는데 작동하지 않는 것 같습니다. cron이 실행하는 매우 간단한 스크립트가 있습니다.

export [email protected]
[email protected]
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 [email protected]

내가 무엇을 놓치고 있나요? cron이 스크립트에 설정된 환경 변수를 선택하지 않는 이유는 무엇입니까?

답변1

Unix의 프로세스는 자체 환경 변수를 변경할 수 있으며 해당 하위 항목이 생성될 때 하위 환경 변수를 정의할 수 있습니다. 프로세스는 부모의 환경 변수, 자식이 생성된 후 자식의 환경 변수 또는 다른 프로세스의 환경 변수를 변경할 수 없습니다.

cron 작업을 통해 cron의 환경 변수를 변경하려는 것처럼 보이지만 이는 불가능합니다.

답변2

나는 cron이 실행되고 있는 동일한 사용자로 로그인하지 않은 것 같습니다. 따라서 불일치가 발생합니다.

답변3

MAILTO파일 에 환경 변수를 설정합니다 crontab. cron보안상의 이유로 환경 변수를 무시하십시오. 지정되지 않은 경우 MAILTO출력은 출력을 생성한 프로세스의 소유자에게 메일로 전송됩니다.

관련 정보