nbd: use procd style init script for nbd-server 1751/head
authorMarcin Jurkowski <marcin1j@gmail.com>
Tue, 1 Sep 2015 22:12:24 +0000 (00:12 +0200)
committerMarcin Jurkowski <marcin1j@gmail.com>
Wed, 2 Sep 2015 10:48:43 +0000 (12:48 +0200)
Runs nbd-server in foreground.

Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>
net/nbd/Makefile
net/nbd/files/nbd-server.init

index 4f1840298120d1f7d0ecf78cad6cec8e1d8353f4..130b31b6eb98c9be700da0ed94850467525fb0e1 100644 (file)
@@ -53,7 +53,7 @@ endef
 CONFIGURE_ARGS += \
        --disable-glibtest
 
-TARGET_CFLAGS += --std=gnu99
+TARGET_CFLAGS += --std=gnu99 -DNODAEMON
 
 define Package/nbd/install
        $(INSTALL_DIR) $(1)/usr/sbin
index 7759219a8b713b543425d561ff4270919e339bcd..ae3db2460490dea87991a36d0ff759a45a30f960 100644 (file)
@@ -1,9 +1,11 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2012 OpenWrt.org
+# Copyright (C) 2015 OpenWrt.org
 
 START=60
-SERVICE_USE_PID=1
+STOP=40
+USE_PROCD=1
 
+PROG=/usr/bin/nbd-server
 CONFIGFILE="/var/etc/nbd-server.conf"
 
 
@@ -81,28 +83,30 @@ config_handle_share() {
        append_val_str listenaddr "$cfg" oldstyle_listenaddr
 }
 
-config_read() {
+start_instance() {
+       local cfg="$1"
+       local enabled
 
-       mkdir -p $(dirname $CONFIGFILE)
-       echo -n > $CONFIGFILE
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+       procd_set_param command $PROG --config-file=$CONFIGFILE
+       procd_set_param file $CONFIGFILE
+       procd_close_instance
+}
 
+start_service() {
        config_load nbd-server
+
+       mkdir -p $(dirname $CONFIGFILE)
+       echo "# auto-generated config file from /etc/config/nbd-server" > $CONFIGFILE
        config_foreach config_handle_generic nbd-server
        config_foreach config_handle_share share
-}
-
-start() {
-       config_read
 
-       if [ "$SERVICE_ENABLED" = "1" ]; then
-               service_start /usr/bin/nbd-server \
-                       --pid-file /var/run/nbd-server.pid \
-                       --config-file=$CONFIGFILE
-       fi
+       config_foreach start_instance nbd-server
 }
 
-stop() {
-       service_stop /usr/bin/nbd-server
+service_triggers() {
+       procd_add_reload_trigger "nbd-server"
 }
-
-