我的问题:
我在perl中有一个if语句,我试图通过环境variables在启动perl脚本时检测它是通过cron作业启动还是通过shell的正常执行。
有没有办法在crontab中设置一个由cron启动的程序能够访问的环境variables?
本质上,我想要在我的crontab的顶部:
COMPANYCRON=1 * * * * * someperl.pl
而在someperl.pl这个如果陈述:
if ( $ENV{'COMPANYCRON'} eq '1' ) { $job_creator = "cron"; }
有没有办法做到这一点? 或者更好的方法来跟踪cron工作?
一些cron守护进程(例如Debian / Ubuntu上的Vixie cron)允许你在你的例子中写出完全相同的语法。 在其他系统上(RHEL等),在你的crontab中使用这样的东西:
* * * * * export COMPANYCRON=1; someperl.pl