Schedule::Cron never returns to main script
我试图每1分钟inteval运行Perl脚本(test.pl)而不使用crontab。 我无权访问/etc/cron.d/中写入cron作业,所以我已经开始使用Perl模块Schedule :: Cron。
我已将test.pl的代码包含在一个连续运行的脚本中,并给出如下代码:
1 2 3 | my $cron = new Schedule::Cron(sub {}); $cron->add_entry("* * * * *",\&test_function); $cron->run(nofork=>1) |
问题是,
$cron->run(nofork=>1)
永远不会返回主脚本,也不会执行之后给出的任何代码。
我需要一个解决方案,在后端运行cron(使用Schedule :: Cron),然后返回主脚本执行剩余的脚本。
请帮忙
更改:
1 | $cron->run(nofork=>1) |
至:
1 | $cron->run(detach=>1) |
这会立即返回主脚本。 来自Schedule :: Cron(detach):
If set to a true value the scheduler process is detached from the
current process (UNIX only).
您需要fork一个后台(守护进程)进程。 你用