tools/bmsd.init

Mon, 11 May 2020 17:32:08 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 11 May 2020 17:32:08 +0200
changeset 671
4b54d6f79d25
parent 575
fd9e4838648f
permissions
-rw-r--r--

Version 0.3.33 Added websockets framework. Added fermenter status messages to the websockets broadcast.

574
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 #! /bin/sh
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 ### BEGIN INIT INFO
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 # Provides: bmsd
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 # Required-Start: $local_fs $remote_fs $network $syslog
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 # Required-Stop: $local_fs $remote_fs $network $syslog
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 # Should-Start: mosquitto
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 # Should-Stop: mosquitto
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 # Default-Start: 2 3 4 5
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 # Default-Stop: 0 1 6
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 # Short-Description: Brewery Management Daemon
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 # Description: This program is the central daemon to collect data
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 # from and control remote devices in a brewery. It is
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 # the production and inventory database.
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 ### END INIT INFO
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 # Author: Michiel Broek <mbroek@mbse.eu>
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 # Do NOT "set -e"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 # PATH should only include /usr/* if it runs after the mountnfs.sh script
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 PATH=/sbin:/usr/sbin:/bin:/usr/bin
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 DESC="Brewery Management Daemon"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 NAME=bmsd
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 DAEMON=/var/lib/bms/bin/$NAME
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 #DAEMON_ARGS="--options args"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 PIDFILE=/var/lib/bms/.bms/run/$NAME.pid
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 SCRIPTNAME=/etc/init.d/$NAME
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 # Exit if the package is not installed
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 [ -x "$DAEMON" ] || exit 0
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 # Read configuration variable file if it is present
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 # Load the VERBOSE setting and other rcS variables
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 . /lib/init/vars.sh
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 # Define LSB log_* functions.
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 # and status_of_proc is working.
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 . /lib/lsb/init-functions
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 # Function that starts the daemon/service
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 do_start()
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 {
575
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
48 # Return
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
49 # 0 if daemon has been started
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
50 # 1 if daemon was already running
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
51 # other if daemon could not be started or a failure occured
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
52 start-stop-daemon --start --chuid brewery --exec $DAEMON
574
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 }
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 # Function that stops the daemon/service
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 do_stop()
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 {
575
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
60 # Return
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
61 # 0 if daemon has been stopped
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
62 # 1 if daemon was already stopped
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
63 # other if daemon could not be stopped or a failure occurred
fd9e4838648f Improved init script for Debian systems
Michiel Broek <mbroek@mbse.eu>
parents: 574
diff changeset
64 start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON
574
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 }
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 # Function that sends a SIGHUP to the daemon/service
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 do_reload() {
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 # If the daemon can reload its configuration without
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 # restarting (for example, when it is sent a SIGHUP),
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 # then implement that here.
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 return 0
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 }
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 case "$1" in
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 start)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 do_start
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 case "$?" in
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 esac
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 stop)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 do_stop
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 case "$?" in
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 esac
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 status)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 #reload|force-reload)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 # If do_reload() is not implemented then leave this commented out
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 # and leave 'force-reload' as an alias for 'restart'.
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 #log_daemon_msg "Reloading $DESC" "$NAME"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 #do_reload
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 #log_end_msg $?
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 #;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108 restart|force-reload)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 # If the "reload" option is implemented then remove the
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 # 'force-reload' alias
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 #
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 log_daemon_msg "Restarting $DESC" "$NAME"
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 do_stop
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 case "$?" in
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 0|1)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 do_start
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 case "$?" in
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 0) log_end_msg 0 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 1) log_end_msg 1 ;; # Old process is still running
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121 *) log_end_msg 1 ;; # Failed to start
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122 esac
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 *)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 # Failed to stop
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 log_end_msg 1
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 esac
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 *)
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 exit 3
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 ;;
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 esac
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135
b436e3d8d83a Added init script
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 :

mercurial