このコードはテストされていません。目的は、出力ファイルのサイズを 3 秒ごとにチェックし、増加が止まったら myprogram を強制終了することです。関係なく、60秒後にも殺されるべきです。
このスクリプトは、スクリプト全体のイベントによってトリガーされて複数回実行されます。
私の質問は、何十もの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