web-dev-qa-db-ja.com

Linuxのサービスにコンパイルされたntpdを追加するにはどうすればよいですか?

このリンク を使用してntp-4.2.8をコンパイルしてインストールし、RHEL 6.5checkinstallを実行してrpmを作成しました。

コマンド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

サービスntpdの情報の読み取りエラー:そのようなファイルまたはディレクトリはありません

パス/etc/init.dを確認したところ、ntpdサービス名がパスに存在しないことがわかりました。

ここで、ntpdバイナリを/etc/init.dの場所にコピーし、次のコマンドを実行しました。

service ntpd start

これで、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

しかし、isoからntp-4.2.6p5-1.el6.x86_64.rpmをインストールすると、自動的にinit.dファイルに追加され、自動的に開始されます。

ntp-4.2.8のエントリをどこでどのように作成すれば、サービスとして自動的に開始されます。

1
Vikram Singh

これが私のinitファイルです-これを試すことができ、パスなどがすべて正しいことを確認できます。

#!/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 ntpdchkconfig ntpd onを実行し、chmod +x ntpdでprivを実行できるようにする必要があります。

1
user3788685