packaging/mqtt
#!/bin/sh
PIDFILE=/var/run/mqtt
DAEMON=/usr/local/etc/config/addons/www/mqtt/GoHomeMaticMqtt_linux_arm
DAEMON_ARGS="-config /usr/local/etc/config/mqtt.json"
log() {
local now=$(date)
echo "[$now] $@"
echo "[$now] $@" >> /var/log/mqtt.log
}
do_start()
{
log "starting mqtt ..."
start-stop-daemon --start --quiet --make-pidfile --background --nicelevel -10 --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
sleep 1
if [ -f "$PIDFILE" ]; then
PID=$(cat $PIDFILE)
log "mqtt started (pid=$PID)"
else
log "mqtt started failed"
fi
}
do_stop()
{
log "stopping mqtt ..."
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
if [ -f "$PIDFILE" ]; then
rm $PIDFILE
fi
log "mqtt stopped"
}
check_status()
{
if [ ! -f "$PIDFILE" ]; then
log "no pid file $PIDFILE"
return -1
fi
local ps=$(cat $PIDFILE)
if [ -z "$ps" ]; then
log "pid file $PIDFILE empty"
return -2
fi
if [ ! -d "/proc/$ps" ]; then
log "no running process with pid $ps"
return -3
fi
log "mqtt is running (pid=$ps)"
return 0
}
case "$1" in
""|start)
log "Start"
do_start
;;
info)
echo "Info: <b>GoHomeMaticMqtt</b><br>"
echo "Info: <a href='https://github.com/dhcgn/hm2mqtt'>https://github.com/dhcgn/hm2mqtt</a>"
;;
stop)
do_stop
;;
restart)
do_stop
sleep 1
do_start
;;
uninstall)
;;
status)
check_status
exit $?
;;
*)
echo "usage: mqtt [info|start|stop|restart|uninstall|status]"
exit 1
;;
esac
exit 0