diff options
Diffstat (limited to 'manualPorts/openntpd/ntpd')
-rw-r--r-- | manualPorts/openntpd/ntpd | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/manualPorts/openntpd/ntpd b/manualPorts/openntpd/ntpd new file mode 100644 index 0000000..7b5710e --- /dev/null +++ b/manualPorts/openntpd/ntpd @@ -0,0 +1,77 @@ +#!/bin/bash + +NAME=ntpd +USER=root +CONFIG= +RUNDIR=/var/run +PIDFILE= +STARTCMD="/usr/sbin/ntpd" +STOPCMD= +STOPTIMEOUT=120 + +function getpid() { + if [ -z "$PIDFILE" ]; then + pid="$(pgrep -xfn "$STARTCMD")" + else + if [ -f "$PIDFILE" ]; then + pid=$(< $PIDFILE) + if [ ! -d /proc/"$pid" ]; then + echo "$NAME: removing stale pidfile $PIDFILE" >&2 + rm -f "$PIDFILE" + unset pid + fi + fi + fi + echo "$pid" +} + +case $1 in + start) + pid=$(getpid) + install -d -m 755 -o $USER $RUNDIR || exit 1 + if [ -n "$pid" ]; then + echo "$NAME already running with pid $pid" >&2 + exit 1 + fi + eval "$STARTCMD" + ;; + stop) + pid=$(getpid) + if [ -n "$pid" ]; then + if [ -n "$STOPCMD" ]; then + eval "$STOPCMD" + else + kill "$pid" + fi + t=$(printf '%(%s)T' -1) + tend=$((t+STOPTIMEOUT)) + while [ -d /proc/$pid -a $t -lt $tend ]; do + sleep 0.5 + t=$(printf '%(%s)T' -1) + done + if [ -d /proc/"$pid" ]; then + echo "$NAME still running with pid $pid" >&2 + else + [ -n "$PIDFILE" ] && rm -f "$PIDFILE" + fi + else + echo "$NAME is not running" >&2 + fi + ;; + restart) + $0 stop + $0 start + ;; + status) + pid=$(getpid) + if [ -n "$pid" ]; then + echo "$NAME is running with pid $pid" + else + echo "$NAME is not running" + fi + ;; + *) + echo "usage: $0 [start|stop|restart|status]" + ;; +esac + |