46 lines
1019 B
Bash
46 lines
1019 B
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=95
|
|
STOP=10
|
|
USE_PROCD=1
|
|
|
|
PROG=/usr/bin/rmm-agent-go
|
|
CONFIG_FILE=/etc/rmm-agent-go.conf
|
|
DEFAULT_LOCK_FILE=/tmp/rmm-agent-go.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-go "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-go "refusing to remove unsafe lock path"
|
|
return 0
|
|
;;
|
|
esac
|
|
rmdir "$lock_file" 2>/dev/null || true
|
|
}
|
|
|
|
start_service() {
|
|
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
|
|
}
|
|
|
|
service_stopped() {
|
|
remove_lock_file
|
|
}
|