Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1
ntp
conf.ntp.init
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File conf.ntp.init of Package ntp
#! /bin/sh # Copyright (c) 1995-2003 SuSE Linux AG, Nuernberg, Germany. # All rights reserved. # # Author: Michael Andres # Author: Michael Skibbe # Author: Andreas Schneider # # /etc/init.d/ntp # and its symbolic link # /usr/sbin/rcntp # ### BEGIN INIT INFO # Provides: ntp ntpd xntpd # Required-Start: $remote_fs $syslog $named # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: Network time protocol daemon (ntpd) # Description: Start network time protocol daemon (NTPD). ### END INIT INFO # First reset status of this service . /etc/rc.status rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # set default options NTP_CONF="/etc/ntp.conf" if [ ! -f ${NTP_CONF} ]; then echo -n "Time server configuration file, ${NTP_CONF} does not exist." # Tell the user this has skipped rc_status -s exit 6 fi NTPD_BIN="/usr/sbin/ntpd" if [ ! -x ${NTPD_BIN} ]; then echo -n "Time server, ${NTPD_BIN} not installed!" rc_status -s exit 5 fi NTPD_OPTIONS="-g -u ntp:ntp" NTPD_RUN_CHROOTED="yes" NTPDC_BIN="/usr/sbin/ntpdc" NTP_KEYS=$(awk '/^keys/ { print $2 }' $NTP_CONF) NTP_KEYID=$(awk '/^requestkey[[:blank:]]/ { print $2 }' $NTP_CONF) NTP_PASSWD=$(test -n "$NTP_KEYS" -a -n "$NTP_KEYID" -a -r "$NTP_KEYS" && awk '$0 ~ key { print $3 }' key="^[[:blank:]]*$NTP_KEYID[[:blank:]]" $NTP_KEYS) if [ -n "$NTP_KEYS" ]; then if test -z "$NTP_KEYID"; then echo -n "NTP key id not defined" rc_status -s exit 5 fi if test -z "$NTP_PASSWD"; then echo -n "No password for requestkey set" return 1 fi fi # Override defaults, if we have the sysconfig file test -f /etc/sysconfig/ntp && . /etc/sysconfig/ntp # set Default CHROOT path if not set but wanted test "${NTPD_RUN_CHROOTED}" = "yes" && \ CHROOT_PREFIX="/var/lib/ntp" || \ CHROOT_PREFIX="" # set default PID variables NTPD_PID="${CHROOT_PREFIX}/var/run/ntp/ntpd.pid" NTPD_PID_NOPREFIX="/var/run/ntp/ntpd.pid" function ntpd_is_running() { $0 status >/dev/null } function parse_symlink() { if [ -c "$NTP_PARSE_DEVICE" ]; then if [ -n "$NTP_PARSE_LINK" ]; then ln -sf $NTP_PARSE_DEVICE $NTP_PARSE_LINK fi fi } function prepare_chroot() { for configfile in /etc/{localtime,ntp.keys} $NTP_CONF $NTPD_CHROOT_FILES; do test -d ${CHROOT_PREFIX}${configfile%/*} || mkdir -p ${CHROOT_PREFIX}${configfile%/*} if [ -r ${configfile} ] then cp -auL ${configfile} ${CHROOT_PREFIX}${configfile%/*} else echo echo "Warning: ${configfile} not found or not readable" fi mkdir -p ${CHROOT_PREFIX}/proc mount -t proc -o ro proc ${CHROOT_PREFIX}/proc 2>/dev/null done NTPD_OPTIONS="${NTPD_OPTIONS} -i ${CHROOT_PREFIX}" } function runtime_configuration() { for f in /var/run/ntp/servers*; do if [ -r ${f} ]; then . ${f} ntp_server="${ntp_server} ${RUNTIME_SERVERS}" fi done if [ -n "${ntp_server}" ]; then for s in ${ntp_server}; do add_runtime_server ${s} done fi } function add_runtime_server() { /usr/sbin/sntp -F -r $@ NTPC_CMD="keyid $NTP_KEYID\npasswd $NTP_PASSWD\naddserver $@\n" NTPDC_LOG=$(echo -e "${NTPC_CMD}quit" | $NTPDC_BIN) logger -t $0 "runtime configuration: $NTPDC_LOG" } function reloaddevices { NTPC_CMD="keyid $NTP_KEYID\npasswd $NTP_PASSWD\nifreload\n" NTPDC_LOG=$(echo -e "${NTPC_CMD}quit" | $NTPDC_BIN) logger -t $0 "runtime configuration: $NTPDC_LOG" } case "$1" in start) # ntpd_is_running || $0 ntptimeset # get the initial date from the timeservers configured in ntp.conf echo -n "Starting network time protocol daemon (NTPD)" # do we need a refclock symlink? parse_symlink # do we run chrooted? test "${NTPD_RUN_CHROOTED}" = "yes" && prepare_chroot startproc $NTPD_BIN -p ${NTPD_PID_NOPREFIX} $NTPD_OPTIONS -c $NTP_CONF if [ -n "${NTP_KEYS}" ]; then runtime_configuration fi rc_status -v ;; stop) echo -n "Shutting down network time protocol daemon (NTPD)" killproc -p ${NTPD_PID} -TERM $NTPD_BIN rc_status -v test -n "${CHROOT_PREFIX}" && umount ${CHROOT_PREFIX}/proc 2>/dev/null rm -f ${NTPD_PID} 2>/dev/null ;; try-restart) $0 status if test $? = 0; then $0 restart $2 else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; restart) $0 stop $0 start $2 rc_status ;; try-restart-iburst) $0 status if test $? = 0; then $0 stop $0 start iburst else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; addserver) if [ -z "${NTP_KEYS}" ]; then echo "Runtime configuration disabled, no key file specified." exit 1 fi if test $# -lt 2; then echo "No servers to add specified" exit 1 fi shift $0 status 2>&1 >/dev/null if test $? = 0; then add_runtime_server "$@" fi ;; force-reload) # Does not support signalling to reload $0 try-restart rc_status ;; ntptimeset) if grep -v 127.127.1.0 $NTP_CONF | grep ^server >/dev/null; then startproc $NTPD_BIN $NTPD_OPTIONS -c $NTP_CONF -q notreached=1 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do sleep 1; NTPDPID=`ps ax | awk '$5 ~ /\/usr\/sbin\/ntpd/ {print $1}'` if [ -z "$NTPDPID" ] then notreached=0 break fi echo -n " ." done if [ $notreached -eq 1 ]; then kill -9 $NTPDPID echo " ${warn}no server reached${norm}"; fi else echo "no server configured" fi ;; reload) echo -n "Reload network time protocol daemon (NTPD)" # Does not support signalling to reload rc_failed 3 rc_status -v ;; status) checkproc -p ${NTPD_PID} $NTPD_BIN if test $? -eq 0; then ntpq -p echo "" fi echo -n "Checking for network time protocol daemon (NTPD): " checkproc -p ${NTPD_PID} $NTPD_BIN rc_status -v ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart|try-restart-iburst|force-reload|reload|addserver|ntptimeset}" exit 1 ;; esac rc_exit
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor