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

Мой вопрос:

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

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

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

COMPANYCRON=1

* * * * * someperl.pl

И в someperl.pl это если заявление:

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

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

1 ответ

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

* * * * * export COMPANYCRON=1; someperl.pl 
Другие вопросы по тегам