packages/utils/prometheus-node-exporter-lua/files/etc/init.d/prometheus-node-exporter-lua
Etienne Champetier 60460f0046 prometheus-node-exporter-lua: use uhttpd-mod-lua
listen_ipv6 config option is removed and we now
listen on both ipv4 and ipv6 addresses.
HTTP keepalive is enabled and set to 70s by default.

With uhttpd-mod-lua there is a small change in behavior,
all code is loaded/parsed/executed once on startup as before,
but now each request is executed in his own fork, so we can't
keep a state between requests.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2022-04-25 12:22:22 -04:00

56 lines
1.4 KiB
Bash

#!/bin/sh /etc/rc.common
# Copyright (C) 2013-2017 OpenWrt.org
START=60
USE_PROCD=1
_log() {
logger -p daemon.info -t prometheus-node-exporter-lua "$@"
}
start_service() {
. /lib/functions/network.sh
local interface port bind
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
procd_open_instance
procd_set_param command /usr/sbin/uhttpd -f -c /dev/null -l / -L /usr/bin/prometheus-node-exporter-lua
[ $keepalive -gt 0 ] && procd_append_param command -k $keepalive
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
fi
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
}
service_triggers()
{
local interface
procd_add_reload_trigger "prometheus-node-exporter-lua"
config_load prometheus-node-exporter-lua.main
config_get interface "main" listen_interface "loopback"
[ "$interface" = "*" ] || procd_add_reload_interface_trigger "$interface"
}