Usando variáveis ​​de ambiente para acompanhar processos iniciados pelo cron

Usando variáveis ​​de ambiente para acompanhar processos iniciados pelo cron

Minha pergunta:

Eu tenho uma instrução if em perl onde tento detectar por meio de variáveis ​​de ambiente no momento de iniciar o script perl se ele foi iniciado por meio de um cron job ou por meio de execução normal por meio do shell.

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

Essencialmente, quero isso no topo do meu crontab:

COMPANYCRON=1

* * * * * someperl.pl

E em someperl.pl esta instrução if:

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

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

Responder1

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 assim no seu crontab:

* * * * * export COMPANYCRON=1; someperl.pl 

informação relacionada