1

I compiled and installed ntp-4.2.8 using this link and created a rpm by running checkinstall on RHEL 6.5.

I used the command ntpd -l logs to manually start ntpd.

After starting I am able to verify ntp using commands:

bash-4.1#  ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 209.118.204.201 .INIT.          16 u    -   64    0    0.000    0.000   0.000
 66.228.42.59    .INIT.          16 u    -   64    0    0.000    0.000   0.000
 97.107.129.217  .INIT.          16 u    -   64    0    0.000    0.000   0.000
 198.60.22.240   .INIT.          16 u    -   64    0    0.000    0.000   0.000
bash-4.1#

When running chkconfig, it throws error:

bash-4.1# chkconfig --list ntpd

error reading information on service ntpd: No such file or directory

checked the path /etc/init.d and found that ntpd service name is not present in it.

Now I copied the ntpd binary at /etc/init.d location and executed the command:

service ntpd start

Now I am able to see the ntpd process running

bash-4.1# ps -aef | grep ntp
root     12409 20389  0 08:16 pts/2    00:00:00 grep ntp
root     30522     1  0 08:03 ?        00:00:00 /etc/init.d/ntpd start

But when I run services command I dont see any ntpd service running

bash-4.1# service --status-all | grep ntpd
bash-4.1#

and again tried the chkconfig command:

bash-4.1# chkconfig --list ntpd
service ntpd does not support chkconfig

Now I tried adding it using chkconfig command and again it throws error:

bash-4.1# chkconfig --add ntpd
service ntpd does not support chkconfig

But when I install ntp-4.2.6p5-1.el6.x86_64.rpm from iso it automatically gets added in init.d file and gets started on its own.

Where and how should I make the entry for ntp-4.2.8 so that it starts automatically as a service.

  • I think I need to create a script under '/etc/init.d' naming 'ntpd' rather than copiend binary at this place. – Vikram Singh Dec 26 '14 at 11:13
1

Here is my init file - you can try this, checking your paths etc. are all correct;

#!/bin/bash
#
# ntpd          This shell script takes care of starting and stopping
#               ntpd (NTPv4 daemon).
#
# chkconfig: - 58 74
# description: ntpd is the NTPv4 daemon. \
# The Network Time Protocol (NTP) is used to synchronize the time of \
# a computer client or server to another server or reference time source, \
# such as a radio or satellite receiver or modem.

### BEGIN INIT INFO
# Provides: ntpd
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $syslog $named ntpdate
# Should-Stop: $syslog $named
# Short-Description: start and stop ntpd
# Description: ntpd is the NTPv4 daemon. The Network Time Protocol (NTP)
#              is used to synchronize the time of a computer client or
#              server to another server or reference time source, such
#              as a radio or satellite receiver or modem.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

prog=ntpd
lockfile=/var/lock/subsys/$prog

start() {
        [ "$EUID" != "0" ] && exit 4
        [ "$NETWORKING" = "no" ] && exit 1
        [ -x /usr/sbin/ntpd ] || exit 5
        [ -f /etc/sysconfig/ntpd ] || exit 6
        . /etc/sysconfig/ntpd

        # Start daemons.
        echo -n $"Starting $prog: "
        daemon $prog $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $lockfile
        return $RETVAL
}

stop() {
        [ "$EUID" != "0" ] && exit 4
        echo -n $"Shutting down $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $lockfile
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status $prog
        ;;
  restart|force-reload)
        stop
        start
        ;;
  try-restart|condrestart)
        if status $prog > /dev/null; then
            stop
            start
        fi
        ;;
  reload)
        exit 3
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
        exit 2
esac

to check its called at the correct run level you need to do chkconfig --add ntpd and chkconfig ntpd on and allow execute priv with chmod +x ntpd

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.