1

Я скомпилировал и установил ntp-4.2.8 по этой ссылке и создал rpm, запустив checkinstall на RHEL 6.5 .

Я использовал команду ntpd -l logs чтобы вручную запустить ntpd.

После запуска я могу проверить ntp с помощью команд:

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#

При запуске chkconfig выдает ошибку:

bash-4.1 # chkconfig --list ntpd

Ошибка чтения информации о службе NTDP: Нет такого файла или каталога

проверил путь /etc/init.d и обнаружил, что имя сервиса ntpd в нем отсутствует.

Теперь я скопировал двоичный файл ntpd в /etc/init.d и выполнил команду:

служба запуска ntpd

Теперь я могу видеть запущенный процесс ntpd

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

Но когда я запускаю команду services, я не вижу ни одного запущенного сервиса ntpd

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

и снова попробовал команду chkconfig :

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

Теперь я попытался добавить его с помощью команды chkconfig и снова выдает ошибку:

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

Но когда я устанавливаю ntp-4.2.6p5-1.el6.x86_64.rpm из iso он автоматически добавляется в файл init.d и запускается самостоятельно.

Где и как мне сделать запись для ntp-4.2.8 чтобы она автоматически запускалась как сервис.

1 ответ1

1

Вот мой файл инициализации - вы можете попробовать это, проверив правильность ваших путей и т. Д .;

#!/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

чтобы проверить, вызван ли он на правильном уровне запуска, вам нужно выполнить chkconfig --add ntpd и chkconfig ntpd on и разрешить выполнение priv с помощью chmod +x ntpd

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .