閏秒関連でちょろちょろ見て回っていて思ったこと。
00秒が連続で来て、crondは誤動作しないのか。
聞いたことないからしないんだろうけど、ちょっと気になる。
あと、crondに何か軽いことをやらせると、決まってログが01秒あたりに出るので、
time_t % 60 == 1の時に処理をするのかなという感もある。
straceでcrondにattachした。
-tオプションでシステムコール発行時刻が、
-ttオプションでマイクロ秒まで出してくれる。
13:25:01.783074 gettimeofday({1337228701, 783236}, NULL) = 0
13:26:01.796409 gettimeofday({1337228761, 796515}, NULL) = 0
13:27:01.809964 gettimeofday({1337228821, 810089}, NULL) = 0
大体、毎分こんな感じで処理が始まっているので、概ね外れていなさそう。
13:33:01.994653 nanosleep({60, 0}, 0x7fff1cf6ba10) = 0
13:34:02.004750 nanosleep({59, 0}, 0x7fff1cf6ba10) = 0
13:35:01.022515 nanosleep({60, 0},
毎分の処理の終わりはこんな。
うん、01秒を狙って動いてる。
crondのソース読みたくなってきた。
0 件のコメント :
コメントを投稿