このリンク を使用してntp-4.2.8
をコンパイルしてインストールし、RHEL 6.5
でcheckinstall
を実行して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
のエントリをどこでどのように作成すれば、サービスとして自動的に開始されます。
これが私の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 ntpd
とchkconfig ntpd on
を実行し、chmod +x ntpd
でprivを実行できるようにする必要があります。