How to add a compiled ntpd in services on linux?

5,222

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

Share:
5,222

Related videos on Youtube

Vikram Singh
Author by

Vikram Singh

Updated on September 18, 2022

Comments

  • Vikram Singh
    Vikram Singh over 1 year

    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.

    • Vikram Singh
      Vikram Singh over 9 years
      I think I need to create a script under '/etc/init.d' naming 'ntpd' rather than copiend binary at this place.