diff options
Diffstat (limited to 'etc/rc.d/ntpd')
-rwxr-xr-x | etc/rc.d/ntpd | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/etc/rc.d/ntpd b/etc/rc.d/ntpd index b09c4d1..ae54ebb 100755 --- a/etc/rc.d/ntpd +++ b/etc/rc.d/ntpd @@ -1,10 +1,12 @@ #!/bin/sh # -# $NetBSD: ntpd,v 1.2 2000/05/13 08:45:07 lukem Exp $ +# $NetBSD: ntpd,v 1.8 2002/06/17 06:47:59 lukem Exp $ # # PROVIDE: ntpd # REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: chrootdir . /etc/rc.subr @@ -12,7 +14,38 @@ name="ntpd" rcvar=$name command="/usr/sbin/${name}" pidfile="/var/run/${name}.pid" +start_precmd="ntpd_precmd" required_files="/etc/ntp.conf" +ntpd_precmd() +{ + if [ -z "$ntpd_chrootdir" ]; then + return 0; + fi + + # If running in a chroot cage, ensure that the appropriate files + # exist inside the cage, as well as helper symlinks into the cage + # from outside. + # + # As this is called after the is_running and required_dir checks + # are made in run_rc_command(), we can safely assume ${ntpd_chrootdir} + # exists and ntpd isn't running at this point (unless forcestart + # is used). + # + # Before enabling ntpd_chrootdir, ensure that: + # - The kernel has "pseudo-device clockctl" compiled in + # - /dev/clockctl is present + # + if [ ! -c "${ntpd_chrootdir}/dev/clockctl" ]; then + rm -f "${ntpd_chrootdir}/dev/clockctl" + ( cd /dev ; /bin/pax -rw -pe clockctl "${ntpd_chrootdir}/dev" ) + fi + ln -fs "${ntpd_chrootdir}/var/db/ntp.drift" /var/db/ntp.drift + + # Change run_rc_commands()'s internal copy of $ntpd_flags + # + rc_flags="-u ntpd:ntpd -i ${ntpd_chrootdir} $rc_flags" +} + load_rc_config $name run_rc_command "$1" |