2012-09-10 44 views
0

此代碼未經測試,其目的是每3秒檢查一次輸出文件的大小,並在myprogram停止增加時終止它。無論如何,它也應該在60秒後被殺死。尋找在bash腳本中每秒鐘輪詢一次的替代方案

該腳本將由整個腳本的事件觸發多次運行。

我的問題是,ID有一個更有效的方式來實現文件大小的監控,而不需要運行幾十個1秒的定時器。

也許運行一個主輸出1秒定時器的腳本在運行時會被輸入到所有文件大小監視腳本中?

myprogram >> ~/log/$$.txt 
pid=!$ 
filesize='1' 
counter='0' 
counter2='0' 
while ((counter<61)) 
do 
((counter++)) 
((counter2++)) 
    if (($counter2 == "3")) ; 
    then 
    counter2='0' 
    lastfilesize=$filesize 
    filesize=$(stat -c%s "~/log/$$.txt") 
    if (($filesize == $lastfilesize)) ; 
    then 
    kill $pid 
    fi 
    fi 
sleep 1 
done 
if (($counter == 61)) ; 
then 
kill $pid 
fi 
exit 
+4

如果您只想每3秒鐘檢查一次,爲什麼不在睡眠中「睡眠3」? –

回答

0

由於功能要求mark a comment as an answer繼續下降,我在這裏複製上面的解決方案。

如果你只想每3秒檢查一次,爲什麼不在睡眠中睡3? - Grisha Levit