summaryrefslogtreecommitdiff
path: root/manualPorts/openntpd/ntpd
diff options
context:
space:
mode:
Diffstat (limited to 'manualPorts/openntpd/ntpd')
-rw-r--r--manualPorts/openntpd/ntpd77
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
+