Merge pull request #4615 from xdarklight/vnstat-port-init-to-procd
authorJo-Philipp Wich <jo@mein.io>
Thu, 31 May 2018 11:15:24 +0000 (13:15 +0200)
committerGitHub <noreply@github.com>
Thu, 31 May 2018 11:15:24 +0000 (13:15 +0200)
vnstat: port init-script to procd and enable auto-respawn

net/vnstat/Makefile
net/vnstat/files/vnstat.init

index 1a526fd92efb11acfab01e5a99e3c05380710878..e69b5b036727652e952b05a0b5da2f888dd8be8c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vnstat
 PKG_VERSION:=1.18
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://humdi.net/vnstat
index 7921cbcde2291926d0a6cbdf84f099a15a029dfd..bfd99f8ae1e4bc778e993cbf59467b034f92608e 100644 (file)
@@ -3,25 +3,21 @@
 
 START=99
 
+USE_PROCD=1
+
 vnstat_option() {
        sed -ne "s/^[[:space:]]*$1[[:space:]]*['\"]\([^'\"]*\)['\"].*/\1/p" \
                /etc/vnstat.conf
 }
 
-start() {
+start_service() {
        local lib="$(vnstat_option DatabaseDir)"
-       local pid="$(vnstat_option PidFile)"
 
        [ -n "$lib" ] || {
                echo "Error: No DatabaseDir set in vnstat.conf" >&2
                exit 1
        }
 
-       [ -n "$pid" ] || {
-               echo "Error: No PidFile set in vnstat.conf" >&2
-               exit 1
-       }
-
        mkdir -p "$lib"
 
        init_ifaces() {
@@ -72,18 +68,19 @@ start() {
        config_load vnstat
        config_foreach init_ifaces vnstat
 
-       SERVICE_PID_FILE="${pid}"
-       service_start /usr/sbin/vnstatd -d
+       procd_open_instance
+       procd_set_param stdout 1
+       procd_set_param stderr 1
+       procd_set_param command /usr/sbin/vnstatd --nodaemon
+       procd_set_param file /etc/vnstat.conf
+       procd_set_param respawn
+       procd_close_instance
 }
 
-stop() {
-       local pid="$(vnstat_option PidFile)"
-
-       [ -n "$pid" ] || {
-               echo "Error: No PidFile set in vnstat.conf" >&2
-               exit 1
-       }
+reload_service() {
+       procd_send_signal vnstat
+}
 
-       SERVICE_PID_FILE="${pid}"
-       service_stop /usr/sbin/vnstatd
+service_triggers() {
+       procd_add_reload_trigger vnstat
 }