自宅の時刻合わせ環境ではntpdとchronyを併用しているのですが、そのうちの一台、chronyを導入しているサーバで何故かネットワークに問題が無いのに、offline状態で起動してくる事に気が付きました。
作業環境:
% lsb_release -d
Description: Ubuntu 13.10
手順
% sudo service chrony restart
Restarting time daemon: Starting /usr/sbin/chronyd...
chronyd is running and offline.
chrony.conf
を見なおしても問題ないようにみえるので悩んでいたところ、initファイルの以下の部分が気になりました。
# putonline ()
{ # Do we have a default route? If so put chronyd online.
if timelimit -q -s9 -t5 -- netstat -rn 2>/dev/null | grep -q '0\.0\.0\.0'
then
sleep 2 # Chronyd can take a while to start.
KEY=$(awk '$1 ~ /^commandkey$/ { print $2; exit}' /etc/chrony/chrony.conf)
PASSWORD=`awk '$1 ~ /^'$KEY'$/ {print $2; exit}' /etc/chrony/chrony.keys`
# Make sure chronyc can't hang us up.
if timelimit -q -s9 -t5 -- /usr/bin/chronyc > /dev/null << EOF
processへのtimelimitを設定する部分でwarntimeを設定する部分が、5秒になっていることでした。
manによると、warnsigを送信する前に設定されるプロセスの最大実行時間のようです。
-t warntime
Specify the maximum execution time of the process in seconds before sending
warnsig. Defaults to 3600 seconds.
こちらが短すぎると思い(デフォルトでは3600秒ですし)、60へ変更したところ問題なくonlineで起動してくることを確認しました。
% sudo service chrony start
Starting /usr/sbin/chronyd...
chronyd is running and online.
ということで自分用メモでした。この件で困っている方がいらっしゃいましたら少しでも助けになれば幸いです。