ntpd revision 178967
1127342Smlaier#!/bin/sh
2127342Smlaier#
3127342Smlaier# $FreeBSD: head/etc/rc.d/ntpd 178967 2008-05-12 11:49:16Z flz $
4127342Smlaier#
5127342Smlaier
6127342Smlaier# PROVIDE: ntpd
7150836Syar# REQUIRE: DAEMON ntpdate cleanvar devfs
8150836Syar# BEFORE:  LOGIN
9136224Smtm# KEYWORD: nojail
10127342Smlaier
11127342Smlaier. /etc/rc.subr
12127342Smlaier
13127342Smlaiername=ntpd
14127342Smlaierrcvar=`set_rcvar`
15127342Smlaiercommand="/usr/sbin/${name}"
16127342Smlaierpidfile="/var/run/${name}.pid"
17127342Smlaierstart_precmd="ntpd_precmd"
18127342Smlaier
19136942Spjdload_rc_config $name
20127342Smlaier
21127342Smlaierntpd_precmd()
22127342Smlaier{
23136942Spjd	rc_flags="-c ${ntpd_config} ${ntpd_flags}"
24150839Syar
25127342Smlaier	if checkyesno ntpd_sync_on_start; then
26127342Smlaier		rc_flags="-g $rc_flags"
27127342Smlaier	fi
28127342Smlaier
29150516Spjd	if [ -z "$ntpd_chrootdir" ]; then
30150516Spjd		return 0;
31127342Smlaier	fi
32127342Smlaier
33150839Syar	# If running in a chroot cage, ensure that the appropriate files
34150839Syar	# exist inside the cage, as well as helper symlinks into the cage
35127342Smlaier	# from outside.
36127342Smlaier	#
37150839Syar	# As this is called after the is_running and required_dir checks
38127342Smlaier	# are made in run_rc_command(), we can safely assume ${ntpd_chrootdir}
39127342Smlaier	# exists and ntpd isn't running at this point (unless forcestart
40127342Smlaier	# is used).
41127342Smlaier	#
42127342Smlaier	if [ ! -c "${ntpd_chrootdir}/dev/clockctl" ]; then
43150839Syar		rm -f "${ntpd_chrootdir}/dev/clockctl"
44150839Syar		( cd /dev ; /bin/pax -rw -pe clockctl "${ntpd_chrootdir}/dev" )
45150839Syar	fi
46150839Syar	ln -fs "${ntpd_chrootdir}/var/db/ntp.drift" /var/db/ntp.drift
47130954Smlaier
48127342Smlaier	#	Change run_rc_commands()'s internal copy of $ntpd_flags
49127342Smlaier	#
50127342Smlaier	rc_flags="-u ntpd:ntpd -i ${ntpd_chrootdir} $rc_flags"
51127342Smlaier}
52150839Syar
53127342Smlaierrun_rc_command "$1"
54150839Syar