Files
rmm-openwrt/agent/package/rmm-agent-go-production/files/etc/init.d/rmm-agent

59 lines
1.2 KiB
Bash

#!/bin/sh /etc/rc.common
START=95
STOP=10
USE_PROCD=1
PROG=/usr/bin/rmm-agent
CONFIG_FILE=/etc/rmm-agent.conf
DEFAULT_LOCK_FILE=/tmp/rmm-agent.lock
configured_lock_file() {
local lock_file
lock_file="$(sed -n 's/^LOCK_FILE="\([^" ]*\)"$/\1/p' "$CONFIG_FILE" 2>/dev/null | tail -n 1)"
printf '%s\n' "${lock_file:-$DEFAULT_LOCK_FILE}"
}
remove_lock_file() {
local lock_file
lock_file="$(configured_lock_file)"
case "$lock_file" in
/*) ;;
*) logger -t rmm-agent "refusing to remove non-absolute lock path"; return 0 ;;
esac
case "$lock_file" in
/|/tmp|/run|/var|/var/run|/var/lock)
logger -t rmm-agent "refusing to remove unsafe lock path"
return 0
;;
esac
rmdir "$lock_file" 2>/dev/null || true
}
start_service() {
[ -x /usr/libexec/rmm-agent-uci-sync ] && /usr/libexec/rmm-agent-uci-sync
config_load rmm-agent
config_get_bool enabled main enabled 0
[ "$enabled" -eq 1 ] || return 0
procd_open_instance
procd_set_param command "$PROG" -config "$CONFIG_FILE"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param term_timeout 15
procd_set_param respawn 3600 5 5
procd_close_instance
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "rmm-agent"
}
service_stopped() {
remove_lock_file
}