diff options
Diffstat (limited to 'main/mqtt-exec/mqtt-exec.initd')
-rw-r--r-- | main/mqtt-exec/mqtt-exec.initd | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/main/mqtt-exec/mqtt-exec.initd b/main/mqtt-exec/mqtt-exec.initd new file mode 100644 index 0000000000..727ee203af --- /dev/null +++ b/main/mqtt-exec/mqtt-exec.initd @@ -0,0 +1,40 @@ +#!/sbin/runscript + +: ${mqtt_broker:="msg.alpinelinux.org"} +: ${mqtt_topics:="git/aports/$git_branch"} +: ${exec_user:=nobody} + +command=/usr/bin/mqtt-exec +pidfile=/var/run/$SVCNAME/mqtt-exec.pid + +start() { + local topic + checkpath --directory --owner ${exec_user:-nobody} ${pidfile%/*} + set -- -h ${mqtt_broker} -v + for topic in $mqtt_topics; do + set -- "$@" -t "$topic" + done + + if [ -n "$will_topic" ]; then + set -- "$@" --will-topic "$will_topic" + fi + if yesno "$will_retained"; then + set -- "$@" --will-retained + fi + if [ -n "$will_payload" ]; then + set -- "$@" --will-payload "$will_payload" + fi + if [ -n "$will_qos" ]; then + set -- "$@" --will-qos "$will_qos" + fi + + ebegin "Starting $SVCNAME" + start-stop-daemon --start --stdout /dev/null --stderr /dev/null \ + --background --make-pid --user ${exec_user} \ + --pidfile ${pidfile} \ + --exec $command \ + -- "$@" \ + -- ${exec_command} + eend +} + |