init Datei für NTP erstellen

Jeder Dienst besitzt ein Start-/Stop-Skript im Verzeichnis /etc/init.d. Die Skripte enthalten Befehle, um einen Dienst zu starten bzw. zu beenden. Sie können von Hand aufgerufen werden oder automatisch beim Booten oder Herunterfahren des Systems. Dazu kann das Start-/Stop-Skript inklusive einer Option am Ende ausgeführt werden.

Eigenes Start-/Stop-Skript erstellen

Grundsätzlich kann das Start-/Stop-Skript in 3 Teile aufgesplittet werden:
  • den Header (Desktiption und den Anweisungen für chkconfig)
  • des Testroutinen und den Pfadvorgaben
  • den eigentlichen Anweisungen wie z.B. start, stop, reload usw.
der Header eines Start-/Stop-Skriptes

chkconfig: die erstem Werte beinhalten in welchen Run-Level der Dienst gestartet werden soll
 
Run-Level - 2345
Dienst Start-Nummer - 58
Dienst Kill-Nummer - 74
Start-, Stop- und Reload-Anweisungen

Nun muss die Datei im Verzeichnis /etc/init.d/ mit dem Dateinamen ntpd abgelegt werden.
Eingebunden und aktiviert wird das frisch erstellt Init-Skript für NTP mit den folgenden 2 Befehlen:
  • chkconfig --all ntpd (liest die angegebenen Run-Livel aus dem Init-Skript aus und aktiviert diese)
  • service ntpd start (initiales starten des Dienstes)

  • Beispiel: ntp.initd

    #!/bin/bash
    #
    # ntpd        This shell script takes care of starting and stopping
    #        ntpd (NTPv4 daemon).
    #
    # chkconfig: 2345 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.
    # Source function library.
    . /etc/init.d/functions
    # Source networking configuration.
    . /etc/sysconfig/network
    if [ -f /etc/sysconfig/ntpd ];then
            . /etc/sysconfig/ntpd
    fi
    # Check that networking is up.
    [ "${NETWORKING}" = "no" ] && exit 0
    # Script Config
    NTPD_BIN="/usr/sbin/ntpd"
    NTPD_CONF="/etc/ntpd/ntpd.conf"
    PID_FILE="/var/run/ntpd/ntpd.pid"
    NTPD_LOG="/var/log/ntpd.log"
    # TMPDIR must be writeable
    export TMPDIR="/var/tmp"
    # See how we were called
    case "$1" in
      start)
        if [ ! -f ${NTPD_CONF} ]; then
          echo -n >&2 "ntpd configuration file, ${NTPD_CONF} does not exist. "
          exit 6
        fi
        echo -n "Starting ntpd :"
        # ${PID_FILE} ${NTPD_BIN} -g -c ${NTPD_CONF} -l ${NTPD_LOG}
        daemon ${NTPD_BIN} -g -c ${NTPD_CONF} -l ${NTPD_LOG} -p ${PID_FILE}
        echo
      ;;
      stop)
        echo -n "Shutting down ntpd :"
        killproc ntpd
        echo
      ;;
      condrestart)
        [ -f /var/lock/subsys/ntpd ] && restart || :
      ;;
      restart)
        $0 stop
        $0 start
      ;;
      force-reload|reload)
        echo -n "ntp new reloading :"
        kill -HUP `cat ${PID_FILE}`
        exit $?
      ;;
      status)
        status ntpd
        exit $?
      ;;
      probe)
        test ${NTPD_CONF} -nt ${PID_FILE} && echo reload
      ;;
      *)
        echo "Usage: $0 {start|stop|status|condrestart|restart|force-reload|reload|probe}"
        exit 1
      ;;
    esac