Использование переменных среды для отслеживания процессов, запущенных cron

Использование переменных среды для отслеживания процессов, запущенных cron

Мой вопрос:

У меня есть оператор if в Perl, в котором я пытаюсь определить с помощью переменных окружения во время запуска скрипта Perl, был ли он запущен с помощью задания cron или посредством обычного выполнения через оболочку.

Есть ли способ задать переменную окружения в самом crontab, к которой программа, запущенная cron, сможет получить доступ?

По сути, я хочу, чтобы это было в верхней части моего crontab:

COMPANYCRON=1

* * * * * someperl.pl

А в someperl.pl этот оператор if:

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

Есть ли способ сделать это? Или лучший подход к отслеживанию заданий cron?

решение1

Некоторые демоны cron (например, Vixie cron на Debian/Ubuntu) допускают точно такой же синтаксис, который вы написали в своем примере. В других системах (RHEL и т. д.) используйте что-то вроде этого в вашем crontab:

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

Связанный контент