2

我正在尝试每分钟运行一次 Perl 脚本(test.pl)而不使用crontab. 由于我无法将 cron 作业写入/etc/cron.d/其中,因此我使用的是 Perl 模块Schedule::Cron

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

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

问题是这条线

$cron->run(nofork=>1)

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

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

4

1 回答 1

6

改变:

$cron->run(nofork=>1)

至:

$cron->run(detach=>1)

这将立即返回到主脚本。从Schedule::Cron(分离):

如果设置为真值,调度程序进程将与当前进程分离(仅限 UNIX)。

于 2013-10-17T12:53:04.747 回答