#!/bin/sh # Start/stop/restart ntpd. # Start ntpd: ntpd_start() { CMDLINE="/usr/sbin/ntpd -g" echo -n "Starting NTP daemon: $CMDLINE" $CMDLINE -p /var/run/ntpd.pid echo # The kernel is now mocking around with the the hardware clock if # ntpd is running, so if the hardware clock (wall clock) is set to # 'localtime' execute hwclock --localtime --systohc to disable the # 11 minute mode kernel function: if [ -x /sbin/hwclock ]; then # Check for a broken motherboard RTC clock (where ioports for rtc are # unknown) to prevent hwclock causing a hang: if ! grep -q -w rtc /proc/ioports ; then CLOCK_OPT="--directisa" fi if ! grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then echo "Saving system time to the hardware clock (localtime)." /sbin/hwclock $CLOCK_OPT --localtime --systohc fi fi } # Stop ntpd: ntpd_stop() { echo -n "Stopping NTP daemon..." if [ -r /var/run/ntpd.pid ]; then kill -HUP $(cat /var/run/ntpd.pid) rm -f /var/run/ntpd.pid else killall -HUP -q ntpd fi echo } # Restart ntpd: ntpd_restart() { ntpd_stop sleep 1 ntpd_start } # Check if ntpd is running ntpd_status() { if [ -e /var/run/ntpd.pid ]; then echo "ntpd is running." else echo "ntpd is stopped." exit 1 fi } case "$1" in 'start') ntpd_start ;; 'stop') ntpd_stop ;; 'restart') ntpd_restart ;; 'status') ntpd_status ;; *) echo "usage $0 start|stop|restart|status" esac