Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/etc/rc.d if $ntpd_chrootdir != "", ensure that the following...



details:   https://anonhg.NetBSD.org/src/rev/568016634ccf
branches:  trunk
changeset: 520831:568016634ccf
user:      lukem <lukem%NetBSD.org@localhost>
date:      Fri Jan 18 10:51:30 2002 +0000

description:
if $ntpd_chrootdir != "", ensure that the following files, devices,
and links exist:
        ${ntpd_chrootdir}/dev/clockctl
        /var/db/ntp.drift -> ${ntpd_chrootdir}/var/db/ntp.drift
and then start ntpd with the appropriate options to run chroot(2)ed
under $ntpd_chrootdir as user ntpd group ntpd.

to take advantage of this, set ntpd_chrootdir in /etc/rc.conf.

[this is based on similar work i did for rc.d/named]

diffstat:

 etc/rc.d/ntpd |  29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diffs (46 lines):

diff -r 9f85a3fa8ae2 -r 568016634ccf etc/rc.d/ntpd
--- a/etc/rc.d/ntpd     Fri Jan 18 10:48:41 2002 +0000
+++ b/etc/rc.d/ntpd     Fri Jan 18 10:51:30 2002 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: ntpd,v 1.3 2000/09/19 13:04:39 lukem Exp $
+# $NetBSD: ntpd,v 1.4 2002/01/18 10:51:30 lukem Exp $
 #
 
 # PROVIDE: ntpd
@@ -12,7 +12,34 @@
 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).
+       #
+       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
+       #
+       _flags="-u ntpd:ntpd -i ${ntpd_chrootdir} $_flags"
+}
+
 load_rc_config $name
 run_rc_command "$1"



Home | Main Index | Thread Index | Old Index