1*4882a593Smuzhiyun#! /bin/sh
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun# Based on the Debian initscript for mosquitto
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun### BEGIN INIT INFO
6*4882a593Smuzhiyun# Provides:         mosquitto
7*4882a593Smuzhiyun# Required-Start:   $remote_fs $syslog
8*4882a593Smuzhiyun# Required-Stop:    $remote_fs $syslog
9*4882a593Smuzhiyun# Default-Start:    2 3 4 5
10*4882a593Smuzhiyun# Default-Stop:     0 1 6
11*4882a593Smuzhiyun# Short-Description:    mosquitto MQTT message broker
12*4882a593Smuzhiyun# Description:
13*4882a593Smuzhiyun#  This is a message broker that supports version 3.1/3.1.1 of the MQ Telemetry
14*4882a593Smuzhiyun#  Transport (MQTT) protocol.
15*4882a593Smuzhiyun#
16*4882a593Smuzhiyun#  MQTT provides a method of carrying out messaging using a publish/subscribe
17*4882a593Smuzhiyun#  model. It is lightweight, both in terms of bandwidth usage and ease of
18*4882a593Smuzhiyun#  implementation. This makes it particularly useful at the edge of the network
19*4882a593Smuzhiyun#  where a sensor or other simple device may be implemented using an arduino for
20*4882a593Smuzhiyun#  example.
21*4882a593Smuzhiyun### END INIT INFO
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunset -e
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunPIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid
26*4882a593SmuzhiyunDAEMON=@SBINDIR@/mosquitto
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun# start and stop the mosquitto MQTT message broker
29*4882a593Smuzhiyun
30*4882a593Smuzhiyuntest -x ${DAEMON} || exit 0
31*4882a593Smuzhiyun
32*4882a593Smuzhiyunumask 022
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun. @SYSCONFDIR@/init.d/functions
35*4882a593Smuzhiyun
36*4882a593Smuzhiyunexport PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@"
37*4882a593Smuzhiyun
38*4882a593Smuzhiyuncase "$1" in
39*4882a593Smuzhiyun    start)
40*4882a593Smuzhiyun        echo "Starting Mosquitto message broker" "mosquitto"
41*4882a593Smuzhiyun        if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then
42*4882a593Smuzhiyun            exit 0
43*4882a593Smuzhiyun        else
44*4882a593Smuzhiyun            exit 1
45*4882a593Smuzhiyun        fi
46*4882a593Smuzhiyun        ;;
47*4882a593Smuzhiyun    stop)
48*4882a593Smuzhiyun        echo "Stopping Mosquitto message broker" "mosquitto"
49*4882a593Smuzhiyun        if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then
50*4882a593Smuzhiyun            rm -f ${PIDFILE}
51*4882a593Smuzhiyun            exit 0
52*4882a593Smuzhiyun        else
53*4882a593Smuzhiyun            exit 1
54*4882a593Smuzhiyun        fi
55*4882a593Smuzhiyun        ;;
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun    reload|force-reload)
59*4882a593Smuzhiyun        if [ -f ${PIDFILE} ] ; then
60*4882a593Smuzhiyun            echo "Reloading configuration for mosquitto"
61*4882a593Smuzhiyun            pid=`cat ${PIDFILE}`
62*4882a593Smuzhiyun            kill -HUP $pid
63*4882a593Smuzhiyun        else
64*4882a593Smuzhiyun            echo "mosquitto does not seem to be running"
65*4882a593Smuzhiyun        fi
66*4882a593Smuzhiyun        ;;
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun    restart)
69*4882a593Smuzhiyun        echo "Restarting Mosquitto message broker" "mosquitto"
70*4882a593Smuzhiyun        if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then
71*4882a593Smuzhiyun            rm -f ${PIDFILE}
72*4882a593Smuzhiyun        fi
73*4882a593Smuzhiyun        if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then
74*4882a593Smuzhiyun            exit 0
75*4882a593Smuzhiyun        else
76*4882a593Smuzhiyun            exit 1
77*4882a593Smuzhiyun        fi
78*4882a593Smuzhiyun        ;;
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun    status)
81*4882a593Smuzhiyun        status ${DAEMON} && exit 0 || exit $?
82*4882a593Smuzhiyun        ;;
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun    *)
85*4882a593Smuzhiyun        echo "Usage: $0 {start|stop|reload|force-reload|restart|status}"
86*4882a593Smuzhiyun        exit 1
87*4882a593Smuzhiyunesac
88*4882a593Smuzhiyun
89*4882a593Smuzhiyunexit 0
90