#!/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 }