rc.ntp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
  2. ##
  3. ## rc.ntp -- Run-Commands
  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 @l_susr@
  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. -s @l_prefix@/var/ntp/ntpd.stat/
  32. %stop -p 200 -u @l_susr@
  33. opServiceEnabled ntp && opVarIsYes ntp_daemon || exit 0
  34. ntp_signal TERM
  35. %restart -u @l_susr@
  36. opServiceEnabled ntp && opVarIsYes ntp_daemon || exit 0
  37. ntp_signal TERM
  38. sleep 2
  39. # restart the NTP daemon for continued synchronization
  40. @l_prefix@/bin/ntpd \
  41. -p @l_prefix@/var/ntp/ntpd.pid \
  42. -f @l_prefix@/var/ntp/ntpd.drift \
  43. -s @l_prefix@/var/ntp/ntpd.stat/
  44. %hourly -u @l_susr@
  45. opServiceEnabled ntp || exit 0
  46. opVarIsYes ntp_daemon && exit 0
  47. (
  48. sleep 30
  49. @l_prefix@/bin/ntpdate \
  50. `grep "^server" @l_prefix@/etc/ntp/ntp.conf |\
  51. awk '{ printf(" %s", $2); }'`
  52. ) >/dev/null &
  53. %daily -u @l_susr@
  54. opServiceEnabled ntp && opVarIsYes ntp_daemon || exit 0
  55. opTmpDirGen ntp
  56. opTmpDirFile ntp hint hintfile
  57. prolog="true"
  58. if [ ".$ntp_log_prolog" != . ]; then
  59. prolog="$prolog; $ntp_log_prolog"
  60. fi
  61. epilog="echo 'epilog' >$hintfile"
  62. if [ ".$ntp_log_epilog" != . ]; then
  63. epilog="$epilog; $ntp_log_epilog"
  64. fi
  65. shtool rotate -f \
  66. -n${ntp_log_numfiles} -s${ntp_log_minsize} \
  67. -d -z${ntp_log_complevel} \
  68. -o@l_musr@ -g@l_mgrp@ -m644 \
  69. -P "$prolog" \
  70. -E "$epilog" \
  71. @l_prefix@/var/ntp/ntp.log
  72. if [ ".`cat $hintfile`" = ".epilog" ]; then
  73. ntp_signal TERM
  74. sleep 2
  75. # restart the NTP daemon
  76. @l_prefix@/bin/ntpd \
  77. -p @l_prefix@/var/ntp/ntpd.pid \
  78. -f @l_prefix@/var/ntp/ntpd.drift \
  79. -s @l_prefix@/var/ntp/ntpd.stat/
  80. fi
  81. opTmpDirDel ntp