환경 변수를 사용하여 cron이 시작한 프로세스를 추적합니다.

환경 변수를 사용하여 cron이 시작한 프로세스를 추적합니다.

내 질문:

Perl 스크립트를 시작할 때 환경 변수를 통해 cron 작업을 통해 시작되었는지 아니면 쉘을 통한 일반 실행을 통해 시작되었는지 감지하려고 시도하는 if 문이 있습니다.

cron에 의해 시작된 프로그램이 액세스할 수 있는 crontab 자체에 환경 변수를 설정할 수 있는 방법이 있습니까?

본질적으로, 나는 이것을 내 crontab 상단에 두고 싶습니다:

COMPANYCRON=1

* * * * * someperl.pl

그리고 someperl.pl에서는 다음 if 문을 사용합니다.

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

이를 수행할 수 있는 방법이 있습니까? 아니면 크론 작업을 추적하는 더 나은 접근 방식이 있을까요?

답변1

일부 cron 데몬(예: Debian/Ubuntu의 Vixie cron)은 예제에서 작성한 것과 똑같은 구문을 허용합니다. 다른 시스템(RHEL 등)에서는 crontab에서 다음과 같이 사용하세요.

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

관련 정보