Мой вопрос:
У меня есть оператор if в perl, в котором я пытаюсь определить с помощью переменных среды во время запуска сценария perl, был ли он запущен через задание cron или через обычное выполнение через оболочку.
Есть ли способ установить переменную среды в самом crontab, к которой программа, запущенная cron, сможет получить доступ?
По сути, я хочу, чтобы это было вверху моего crontab:
COMPANYCRON=1
* * * * * someperl.pl
И в someperl.pl этот оператор if:
if ( $ENV{'COMPANYCRON'} eq '1' ) {
$job_creator = "cron";
}
Есть ли способ сделать это? Или лучший подход к отслеживанию заданий cron?
Некоторые демоны cron (например, Vixie cron в Debian / Ubuntu) допускают точно такой же синтаксис, который вы написали в своем примере. В других системах (RHEL и т. Д.) Используйте в crontab что-то вроде этого:
* * * * * export COMPANYCRON=1; someperl.pl