내 질문:
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