prometheus-node-exporter-lua: fix waiting for interface
[feed/packages.git] / utils / prometheus-node-exporter-lua / files / etc / init.d / prometheus-node-exporter-lua
index 57440d5efa6b0434d6420a89532b4bd3fb7f5980..7dc8bc199c7f93ea24a7f337f19f26f31bbfc456 100644 (file)
@@ -11,13 +11,22 @@ _log() {
 start_service() {
        . /lib/functions/network.sh
 
-       local interface port bind
+       local interface port bind4 bind6
 
        config_load prometheus-node-exporter-lua.main
        config_get keepalive "main" http_keepalive 70
        config_get interface "main" listen_interface "loopback"
        config_get port "main" listen_port 9100
 
+       [ "$interface" = "*" ] || {
+               network_get_ipaddr  bind4 "$interface"
+               network_get_ipaddr6 bind6 "$interface"
+               [ -n "$bind4$bind6" ] || {
+                       _log "defering start until listen interface $interface becomes ready"
+                       return 0
+               }
+    }
+
        procd_open_instance
 
        procd_set_param command /usr/sbin/uhttpd -f -c /dev/null -l / -L /usr/bin/prometheus-node-exporter-lua
@@ -26,14 +35,8 @@ start_service() {
        if [ "$interface" = "*" ]; then
                procd_append_param command -p $port
        else
-               network_is_up "$interface" || {
-                       _log "defering start until listen interface $interface becomes ready"
-                       return 0
-               }
-               network_get_ipaddr6 bind "$interface"
-               [ -n "$bind" ] && procd_append_param command -p [$bind]:$port
-               network_get_ipaddr bind "$interface"
-               [ -n "$bind" ] && procd_append_param command -p $bind:$port
+               [ -n "$bind4" ] && procd_append_param command -p $bind4:$port
+               [ -n "$bind6" ] && procd_append_param command -p [$bind6]:$port
        fi
 
        procd_set_param stdout 1