Solaris 10 (05/09) xNTPD Startup Failure - How to Fix

Dear All,

I installed the Solaris 2.10 (05/09) download on a Sparc platform, and wanted to configure the network time protocol daemon (xNTPD) to work as an NTP client.

Of course there are many web sites that trumpet the advise to simply copy the ntp.client file to the ntp.conf file, and then issue the svcadm enable ntp command. However, after careful study, it was determined that this command HAD NO EFFECT. Specifically, when you issue the command svcs ntp, the following text is displayed:

# svcs ntp
STATE STIME FMRI
online 10:25:59 svc:/network/ntp:default

But if you request a process list and search for ntp, nothing is returned:

# ps -ef | grep ntp
#

Further examination reveals that the logfile for the ntp service:

/var/svc/log/network-ntp:default.log

Contains the following errors:

[ Sep 11 20:47:31 Enabled. ]
[ Sep 11 20:47:31 Method property group 'start' is not present. ]
[ Sep 11 20:48:56 Stopping because service disabled. ]
[ Sep 11 20:48:56 Method property group 'stop' is not present. ]
[ Sep 11 20:49:11 Enabled. ]

***

ROOT CAUSE ANALYSIS

Studying these sites:

MISAMAP JAVA: Config VNC server OpenSolaris

and

The documentation contained in the second post provided a discussion of the Solaris Service Management Facility - the functionality that Sun developed to replace Inet.d.

Digging into the examples provided within this document, it was determined that the configuration of the SMF in regards to the xNTPD was incomplete/corrupted. This is significant because, as I stated in the opening paragraph, this was a brand new installation of Solaris on a Sparc Platform. So, in other words, we have a bug.

To enable SMF to correctly manage NTP, the following code was added to the SVC:/network/ntp:default script configuration for the ntp daemon:

(see absolute page 20 of the t-smf-devday-june-2005.pdf file)

start framework
start/exec astring /usr/lib/inet/xntpd
start/type astring method
refresh framework
refresh/exec astring /usr/lib/inet/xntpd
refresh/type astring method

After adding these lines to the configuration, the startup command sequence now works correctly:

svcadm refresh ntp
svcadm restart ntp

And a process list now shows the ntp daemon running correctly:

# ps -ef | grep ntp
root 2412 2105 0 10:54:24 pts/2 0:00 grep ntp
root 2358 1 0 10:25:59 ? 0:00 /usr/lib/inet/xntpd
#

***

QUESTION
For those of you that are highly knowledgeable in Solaris, can you please tell me whether or not I added all/correct variables to the SMF configuration? It works, yes, but is this the *correct* configuration? I have studied some of the other SMF configurations, but I was unsure reading them if this was correct.

Please advise.

THANK YOU!

Regards,
iic1tls

what is the output of:

# ntpq -p

?

also note: please use CODE tags when you post output from terminal!

When I query for NTP time sources (as configured in my ntp.conf file) using the 'ntpq -p' command, I can see the time source that I am synchronizing against. Again - this confirms that xNTPD is working now as advertised.

My question does not have anything to do with the configuration of xNTPD, but rather with the Solaris SMF that controls NTPD.

Can anyone give me an idea as to how your SMF is configured for xNTPD?

THANK YOU!

iic1tls