2014-04-22 77 views
0

我正在編輯一個crontab的工作,我想運行星期五晚上10點到星期六晚上10點,我不確定這是否可能。 任何幫助表示感謝,謝謝。是否可以讓cron作業在特定的時間段內運行?

+0

你能更具體嗎? Cron可以安排一個可執行文件,它通常不會限制運行時間。您可以安排週五@晚上10點,或者通常在一週中的任何一天/時間。 –

+0

我希望我的工作只能在這幾個小時之間運行(週五10點 - 週六10點)。這是否回答您的問題? – user3561633

+1

這是否意味着在星期六晚上10點後,這個工作應該會被殺死? –

回答

1

如果理解正確,你希望工作在星期六晚上10點後被殺死。

爲此,您可以使用timeout命令:

舉例來說,如果工作是command arguments,而不是你將它指定爲:

timeout 86400 command arguments 

其中86400是第二timeout數殺死之前將等待該過程。

在crontable這意味着

00 22 * * 5 timeout 86400 command arguments 
+0

* 22 * * 5,6/script/to/execute /是否正確? – user3561633

+0

沒有'cronjob'只指定一個進程*開始時*,所以你不應該指定'6'作爲dow,而且它應該是'22'(因爲那是10PM)。最後你應該在超時前添加它。 –

+1

@ user3561633這個幻數('86400')是'24 * 60 * 60'。一分鐘有60秒鐘,一小時有60分鐘,一天有24小時。所以,這會在24小時後超時(殺死)這項工作。 –

2

如果你不想從超時做到這一點:

它可以通過crontab中可以達到最好的方法是

1)有腳本script1的一個條目星期五10PM 這個腳本1運行你的目標程序prog1並且應該控制邏輯,如果它發現它在星期六保持運行,它將會終止prog1 10:01 PM

2)在crontab中有一個條目,在週五晚上10點運行prog1,並有另一個腳本script_to_kill安排在星期六晚上10點1分,它將檢查prog1是否仍在運行,如果是,則會終止。

殺死一個腳本/程序有它自己的問題

+0

當然,人們應該希望腳本不會做太多I/O或修改某些寄存器(或僅在處理開始時)。 –

+0

是的,這也是有用的。 – user3561633

+0

:) @ user3561633謝謝.. – PradyJord

相關問題