2011-12-29 472 views
4

我怎樣才能每1秒運行一次cron?默認情況下只有幾分鐘的選項Cron:每1秒運行一次cron?

+6

我希望你的工作本身在1秒內完成? :) – ArjunShankar 2011-12-29 16:22:20

+2

克朗每秒?你確定!?這很瘋狂! :) – DonCallisto 2011-12-29 16:23:21

+0

它只是一個小腳本 – 2011-12-29 16:28:28

回答

8

讓cron第一次開始工作一次。把程序放在一個無限循環中,在每個循環結束時sleep()1秒。像這樣,在C:

int main(int argc, char ** argv) { 
     while (1) { 
     // do the work 
     sleep(1000); 
     } 
    } 

能這樣嗎?

+0

是的。很棒的解決你可以幫我用bash做這件事嗎? – 2011-12-29 16:28:10

+0

有關bash的答案,請提出一個新問題。 – 2011-12-29 16:42:03

+1

爲什麼麻煩從cron開始呢? – 2011-12-29 20:17:10

2

你不能用cron,因爲1分鐘是THE最小時間間隔可用。你必須運行一個腳本來啓動60個其他腳本,延遲時間爲0到59秒,或者一個腳本重新運行60次。

但是那時,爲什麼不在cron之外運行一個在循環中睡眠(1)的腳本呢?

3

Cron每分鐘執行一次。使用腳本:

 
while : 
do 
    sleep 1 
    some_command || break 
done 

或一條線:

while : ; do sleep 1 ; some_command || break ; done

這將在等待1秒每次執行之間,所以如果你的命令需要0.75秒運行,那麼這個腳本會踢它每1.75秒關閉一次。