Schedule :: Cron永远不会返回主脚本

时间:2013-10-17 12:35:21

标签: perl cron

我试图在不使用crontab的情况下每隔1分钟运行一次Perl脚本(test.pl)。我无权访问/etc/cron.d/中的cron作业,因此我开始使用Perl模块Schedule :: Cron。

我已将test.pl的代码包含在一个连续运行的脚本中,并给出如下代码:

my $cron = new Schedule::Cron(sub {}); 
$cron->add_entry("* * * * *",\&test_function); 
$cron->run(nofork=>1)

问题是,

  

$ cron->运行(nofork =→1)

永远不会返回主脚本,也不会执行之后给出的任何代码。

我需要一个解决方案,在后端运行cron(使用Schedule :: Cron),然后返回主脚本执行剩余的脚本。

请帮忙

2 个答案:

答案 0 :(得分:6)

变化:

$cron->run(nofork=>1)

为:

$cron->run(detach=>1)

这会立即返回主脚本。来自Schedule::Cron(分离):

  

如果设置为true值,则调度程序进程将从中分离   当前进程(仅限UNIX)。

答案 1 :(得分:0)

您需要派生后台(守护程序)进程。你用nofork => 1封锁了它。