rc.ntp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
  2. ##
  3. ## rc.ntp -- Run-Commands for NTP Daemon
  4. ##
  5. %config
  6. ntp_enable="yes"
  7. ntp_daemon="yes"
  8. ntp_log_prolog="true"
  9. ntp_log_epilog="true"
  10. ntp_log_numfiles="10"
  11. ntp_log_minsize="1M"
  12. ntp_log_complevel="9"
  13. %common
  14. ntp_signal () {
  15. if [ -f "@l_prefix@/var/ntp/ntpd.pid" ]; then
  16. kill -$1 `cat @l_prefix@/var/ntp/ntpd.pid`
  17. fi
  18. }
  19. %start -p 200 -u root
  20. opServiceEnabled ntp || exit 0
  21. # synchronize local machine once at startup
  22. # because ntpd does not skip large time offsets
  23. @l_prefix@/bin/ntpdate \
  24. `grep "^server" @l_prefix@/etc/ntp/ntp.conf |\
  25. awk '{ printf(" %s", $2); }'`
  26. opVarIsYes ntp_daemon || exit 0
  27. # run the NTP daemon for continued synchronization
  28. @l_prefix@/bin/ntpd \
  29. -p @l_prefix@/var/ntp/ntpd.pid \
  30. -f @l_prefix@/var/ntp/ntpd.drift \
  31. -l @l_prefix@/var/ntp/ntpd.log \
  32. -s @l_prefix@/var/ntp/ntpd.stat/
  33. %stop -p 200 -u root
  34. opServiceEnabled ntp && opVarIsYes ntp_daemon || exit 0
  35. ntp_signal TERM
  36. %restart -u root
  37. opServiceEnabled ntp && opVarIsYes ntp_daemon || exit 0
  38. ntp_signal TERM
  39. sleep 2
  40. # restart the NTP daemon for continued synchronization
  41. @l_prefix@/bin/ntpd \
  42. -p @l_prefix@/var/ntp/ntpd.pid \
  43. -f @l_prefix@/var/ntp/ntpd.drift \
  44. -l @l_prefix@/var/ntp/ntpd.log \
  45. -s @l_prefix@/var/ntp/ntpd.stat/
  46. %hourly -u root
  47. opServiceEnabled ntp || exit 0
  48. opVarIsYes ntp_daemon && exit 0
  49. (
  50. sleep 30
  51. @l_prefix@/bin/ntpdate \
  52. `grep "^server" @l_prefix@/etc/ntp/ntp.conf |\
  53. awk '{ printf(" %s", $2); }'`
  54. ) >/dev/null &
  55. %daily -u root
  56. opServiceEnabled ntp && opVarIsYes ntp_daemon || exit 0
  57. opTmpDirGen ntp
  58. opTmpDirFile ntp hint hintfile
  59. prolog="true"
  60. if [ ".$ntp_log_prolog" != . ]; then
  61. prolog="$prolog; $ntp_log_prolog"
  62. fi
  63. epilog="echo 'epilog' >$hintfile"
  64. if [ ".$ntp_log_epilog" != . ]; then
  65. epilog="$epilog; $ntp_log_epilog"
  66. fi
  67. shtool rotate -f \
  68. -n${ntp_log_numfiles} -s${ntp_log_minsize} \
  69. -d -z${ntp_log_complevel} \
  70. -o@l_musr@ -g@l_mgrp@ -m644 \
  71. -P "$prolog" \
  72. -E "$epilog" \
  73. @l_prefix@/var/ntp/ntpd.log
  74. if [ ".`cat $hintfile`" = ".epilog" ]; then
  75. ntp_signal TERM
  76. sleep 2
  77. # restart the NTP daemon
  78. @l_prefix@/bin/ntpd \
  79. -p @l_prefix@/var/ntp/ntpd.pid \
  80. -f @l_prefix@/var/ntp/ntpd.drift \
  81. -l @l_prefix@/var/ntp/ntpd.log \
  82. -s @l_prefix@/var/ntp/ntpd.stat/
  83. fi
  84. opTmpDirDel ntp