cron ignorando variáveis de ambiente?

1

Isso deve ser simples, mas não parece estar funcionando. Eu tenho um script muito simples executado pelo cron:

export [email protected]
[email protected]
echo "MAILTO is set to $MAILTO"

O Cron, no entanto, parece não estar pegando a variável MAILTO - os e-mails do cron parecem, em parte, assim:

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]

O que estou perdendo? Por que o cron não está pegando as variáveis de ambiente definidas no script?

    
por cbmanica 20.09.2012 / 22:08

3 respostas

1

Um processo no Unix pode mudar suas próprias variáveis de ambiente e pode definir as variáveis de ambiente de seus filhos quando esses filhos são criados. Um processo não pode alterar as variáveis de ambiente de seus pais, de seus filhos depois que esses filhos são criados ou de qualquer outro processo.

Parece que você está tentando fazer com que as variáveis de ambiente do Cron alterem as tarefas do cron, o que é impossível.

    
por 20.09.2012 / 22:12
0

Eu estou supondo que você não está logado como o mesmo usuário que o cron está executando. Assim, criando a discrepância.

    
por 20.09.2012 / 22:12
0

Defina a variável de ambiente MAILTO no arquivo crontab . cron apenas ignora as variáveis de ambiente por motivos de segurança. Se MAILTO não for especificado, a saída será enviada ao proprietário do processo que produziu a saída.

    
por 21.09.2012 / 16:57

Tags