Scripts for Lora servers in Gentoo

I was asked to post the daemon and install scripts on this forum. Unfortunately it seems the system doesn’t accept attachments. So I will post in parts. They were based on the original Debian but are heavily reworked under Gentoo specifics.

Lora-app-server

#!/sbin/openrc-run

DESC=“LoRa App Server”
USER=appserver
GROUP=appserver
DAEMON=/usr/sbin/${SVCNAME}
PID_FILE=/run/${SVCNAME}.pid
DEFAULT_FILE=/etc/conf.d/${SVCNAME}

depend() {
need net
after redis mosquitto postgresql-10
}

checkconfig() {
set -a
if [ -f “${DEFAULT_FILE}” ]; then
. “${DEFAULT_FILE}”
else
eerror “Configuration does not exist: ${DEFAULT_FILE}”
fi
}

start() {
checkconfig || return 1
ebegin “Starting ${SVCNAME}”
start-stop-daemon --start -u “${USER}:${GROUP}” --background -1 /var/log/${SVCNAME}/${SVCNAME}.log -2 /var/log/${SVCNAME}/${SVCNAME}-error.log --make-pidfile --pidfile “${PID_FILE}” --exec ${DAEMON}
eend $?

}

stop() {
ebegin “Stopping ${SVCNAME}”
start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile “${PID_FILE}” --name “${SVCNAME}”
eend $?
}

Loraserver

#!/sbin/openrc-run

DESC=“LoRa Gateway Bridge”
DAEMON_USER=gatewaybridge
DAEMON_GROUP=gatewaybridge
DAEMON=/usr/sbin/${SVCNAME}
PID_FILE=/run/${SVCNAME}.pid
DEFAULT_FILE=/etc/conf.d/${SVCNAME}

depend() {
need net
after mosquitto
}

checkconfig() {
set -a
if [ -f “${DEFAULT_FILE}” ]; then
. “${DEFAULT_FILE}”
else
eerror “Configuration does not exist: ${DEFAULT_FILE}”
fi
}

start() {
checkconfig || return 1
ebegin “Starting ${SVCNAME}”
start-stop-daemon --start -u “$DAEMON_USER:$DAEMON_GROUP” --background -1 /var/log/${SVCNAME}/${SVCNAME}.log -2 /var/log/${SVCNAME}/${SVCNAME}-error.log --make-pidfile --pidfile “$PID_FILE” --exec ${DAEMON}
eend $?

}

stop() {
ebegin “Stopping ${SVCNAME}”
start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile “$PID_FILE” --name “${SVCNAME}”
eend $?
}

Lora-gateway-server

#!/sbin/openrc-run

DESC=“LoRa Server”
DAEMON_USER=loraserver
DAEMON_GROUP=loraserver
DAEMON=/usr/sbin/${SVCNAME}
PID_FILE=/run/${SVCNAME}.pid
DEFAULT_FILE=/etc/conf.d/${SVCNAME}

depend() {
need net
after redis mosquitto
}

checkconfig() {
set -a
if [ -f “${DEFAULT_FILE}” ]; then
. “${DEFAULT_FILE}”
else
eerror “Configuration does not exist: ${DEFAULT_FILE}”
fi
}

start() {
checkconfig || return 1
ebegin “Starting ${SVCNAME}”
start-stop-daemon --start -u “$DAEMON_USER:$DAEMON_GROUP” --background -1 /var/log/${SVCNAME}/${SVCNAME}.log -2 /var/log/${SVCNAME}/${SVCNAME}-error.log --make-pidfile --pidfile “$PID_FILE” --exec ${DAEMON}
eend $?

}

stop() {
ebegin “Stopping ${SVCNAME}”
start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile “$PID_FILE” --name “${SVCNAME}”
eend $?
}