blob: 1735236f727987d868a1fe29fd8de544e184d733 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#!/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-ucode "$@"
}
start_service() {
. /lib/functions/network.sh
local interface port bind4 bind6
config_load prometheus-node-exporter-ucode.main
config_get interface "main" listen_interface "loopback"
config_get port "main" listen_port 9101
config_get keepalive "main" http_keepalive 70
[ "$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 -h /dev/null -S -D -o /metrics -O /usr/share/ucode/node-exporter/metrics.uc
if [ "$interface" = "*" ]; then
procd_append_param command -p $port
else
[ -n "$bind4" ] && procd_append_param command -p $bind4:$port
[ -n "$bind6" ] && procd_append_param command -p [$bind6]:$port
fi
[ $keepalive -gt 0 ] && procd_append_param command -k $keepalive
procd_add_jail prometheus-node-exporter-ucode log procfs sysfs ubus
procd_add_jail_mount "/usr/lib/uhttpd_ucode.so"
procd_add_jail_mount "/lib/libubus.so*"
procd_add_jail_mount "/lib/libuci.so"
procd_add_jail_mount "/usr/lib/ucode"
procd_add_jail_mount "/usr/lib/libnl*.so*"
procd_add_jail_mount "/usr/share/ucode/node-exporter"
procd_add_jail_mount "/etc/config"
# TODO breaks the dsl collector?
#procd_set_param user nobody
#procd_set_param group nogroup
procd_set_param no_new_privs 1
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-ucode"
config_load prometheus-node-exporter-ucode.main
config_get interface "main" listen_interface "loopback"
[ "$interface" = "*" ] || procd_add_reload_interface_trigger "$interface"
}
|