2013-10-17 25 views
2

我試圖運行Perl腳本(test.pl)每隔1分鐘inteval而不使用crontab。我將無法在/etc/cron.d/中寫入cron作業,因此我已經開始使用Perl模塊Schedule :: Cron。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),然後返回主腳本以執行剩餘的腳本。

請幫忙

回答

6

變化:

$cron->run(nofork=>1) 

到:

$cron->run(detach=>1) 

這立即返回到主腳本。從Schedule::Cron(分離):

如果(僅UNIX)設置爲真值的調度器處理從 當前進程脫離。

0

你需要fork一個背景(守護進程)進程。雖然你用nofork => 1來阻止它。

+1

......那麼,OP應該做什麼呢? – toolic

+0

採取了點。草率寫作的道歉。 –

相關問題