base-files: convert sysntpd init script to procd
[openwrt.git] / package / base-files / files / etc / init.d / sysntpd
index fefb48f..c40ee76 100755 (executable)
@@ -3,33 +3,29 @@
 
 START=98
 
-BIN=/usr/sbin/ntpd
-PID=/var/run/sysntpd.pid
-
-start() {
-       [ -x $BIN ] || exit 0
+USE_PROCD=1
+PROG=/usr/sbin/ntpd
+SERVICE_PID_FILE=/var/run/sysntpd.pid
 
+start_service() {
        local peers
-
-       getpeers() {
-               config_get peers "$1" server
-       }
+       local args="-n"
+       local enable_server
 
        config_load system
-       config_foreach getpeers timeserver
+       config_get peers ntp server
+       config_get_bool enable_server ntp enable_server 0
+
+       [ $enable_server -eq 0 -a -z "$peers" ] && return
 
-       if [ -n "$peers" ]; then
+       procd_open_instance
+       procd_set_param command "$PROG" -n
+        [ $enable_server -ne 0 ] && procd_append_param command -l
+       [ -n "$peers" ] && {
                local peer
-               local args="-n"
                for peer in $peers; do
-                       append args "-p $peer"
+                       procd_append_param command -p $peer
                done
-
-               start-stop-daemon -x $BIN -m -p $PID -b -S -- $args
-       fi
-}
-
-stop() {
-       service_kill ${BIN##*/} $PID
-       rm -f $PID
+       }
+       procd_close_instance
 }