base-files: convert sysntpd init script to procd
[openwrt.git] / package / base-files / files / etc / init.d / sysntpd
index aa35da8..c40ee76 100755 (executable)
@@ -3,33 +3,29 @@
 
 START=98
 
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
+USE_PROCD=1
+PROG=/usr/sbin/ntpd
 SERVICE_PID_FILE=/var/run/sysntpd.pid
 
-start() {
-       [ -x $PROG ] || return 1
-
+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
-
-               service_start /usr/sbin/ntpd $args
-       fi
-}
-
-stop() {
-       service_stop /usr/sbin/ntpd
+       }
+       procd_close_instance
 }