Utilizando variáveis de ambiente para acompanhar processos iniciados pelo cron

1

Minha pergunta:

Eu tenho uma declaração if em perl onde eu tento detectar via variáveis de ambiente no momento do lançamento do script perl se ele foi iniciado através de uma tarefa cron ou via execução normal através do shell.

Existe alguma maneira de definir uma variável de ambiente no próprio crontab que um programa lançado pelo cron possa acessar?

Essencialmente, quero isso no topo do meu crontab:

COMPANYCRON=1

* * * * * someperl.pl

E em someperl.pl esta afirmação:

if ( $ENV{'COMPANYCRON'} eq '1' ) {
    $job_creator = "cron";
}

Existe uma maneira de fazer isso? Ou uma abordagem melhor para acompanhar os trabalhos do cron?

    
por perlnovice 24.08.2012 / 23:23

1 resposta

1

Alguns daemons cron (por exemplo, Vixie cron no Debian / Ubuntu) permitem exatamente a mesma sintaxe que você escreveu no seu exemplo. Em outros sistemas (RHEL, etc.), use algo como isto no seu crontab:

* * * * * export COMPANYCRON=1; someperl.pl 
    
por 24.08.2012 / 23:38

Tags