tools/init.debian

changeset 612
452f79a5ad71
parent 560
88c398efc728
equal deleted inserted replaced
611:732d482f47c8 612:452f79a5ad71
1 #! /bin/sh
2 ### BEGIN INIT INFO
3 # Provides: thermferm
4 # Required-Start: $local_fs $remote_fs $network $syslog
5 # Required-Stop: $local_fs $remote_fs $network $syslog
6 # Should-Start: mosquitto
7 # Should-Stop: mosquitto
8 # Default-Start: 2 3 4 5
9 # Default-Stop: 0 1 6
10 # Short-Description: Thermferm beer fermenter initscript
11 # Description: This program controls temperature controlled chambers
12 # that are used to ferment beer.
13 ### END INIT INFO
14
15 # Author: Michiel Broek <mbroek@mbse.eu>
16
17 # Do NOT "set -e"
18
19 # PATH should only include /usr/* if it runs after the mountnfs.sh script
20 PATH=/sbin:/usr/sbin:/bin:/usr/bin
21 DESC="MBSE thermferm"
22 NAME=thermferm
23 DAEMON=/usr/local/bin/$NAME
24 #DAEMON_ARGS="--options args"
25 PIDFILE=/run/$NAME.pid
26 SCRIPTNAME=/etc/init.d/$NAME
27
28 # Exit if the package is not installed
29 [ -x "$DAEMON" ] || exit 0
30
31 # Read configuration variable file if it is present
32 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
33
34 # Load the VERBOSE setting and other rcS variables
35 . /lib/init/vars.sh
36
37 # Define LSB log_* functions.
38 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
39 # and status_of_proc is working.
40 . /lib/lsb/init-functions
41
42 #
43 # Function that starts the daemon/service
44 #
45 do_start()
46 {
47 # Return
48 # 0 if daemon has been started
49 # 1 if daemon was already running
50 # 2 if daemon could not be started
51 #start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1
52 #start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
53 $DAEMON
54 # Add code here, if necessary, that waits for the process to be ready
55 # to handle requests from services started subsequently which depend
56 # on this one. As a last resort, sleep for some time.
57 }
58
59 #
60 # Function that stops the daemon/service
61 #
62 do_stop()
63 {
64 # Return
65 # 0 if daemon has been stopped
66 # 1 if daemon was already stopped
67 # 2 if daemon could not be stopped
68 # other if a failure occurred
69 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
70 RETVAL="$?"
71 [ "$RETVAL" = 2 ] && return 2
72 # Wait for children to finish too if this is a daemon that forks
73 # and if the daemon is only ever run from this initscript.
74 # If the above conditions are not satisfied then add some other code
75 # that waits for the process to drop all resources that could be
76 # needed by services started subsequently. A last resort is to
77 # sleep for some time.
78 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
79 [ "$?" = 2 ] && return 2
80 # Many daemons don't delete their pidfiles when they exit.
81 rm -f $PIDFILE
82 return "$RETVAL"
83 }
84
85 #
86 # Function that sends a SIGHUP to the daemon/service
87 #
88 do_reload() {
89 #
90 # If the daemon can reload its configuration without
91 # restarting (for example, when it is sent a SIGHUP),
92 # then implement that here.
93 #
94 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
95 return 0
96 }
97
98 case "$1" in
99 start)
100 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
101 do_start
102 case "$?" in
103 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
104 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
105 esac
106 ;;
107 stop)
108 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
109 do_stop
110 case "$?" in
111 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
112 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
113 esac
114 ;;
115 status)
116 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
117 ;;
118 #reload|force-reload)
119 #
120 # If do_reload() is not implemented then leave this commented out
121 # and leave 'force-reload' as an alias for 'restart'.
122 #
123 #log_daemon_msg "Reloading $DESC" "$NAME"
124 #do_reload
125 #log_end_msg $?
126 #;;
127 restart|force-reload)
128 #
129 # If the "reload" option is implemented then remove the
130 # 'force-reload' alias
131 #
132 log_daemon_msg "Restarting $DESC" "$NAME"
133 do_stop
134 case "$?" in
135 0|1)
136 do_start
137 case "$?" in
138 0) log_end_msg 0 ;;
139 1) log_end_msg 1 ;; # Old process is still running
140 *) log_end_msg 1 ;; # Failed to start
141 esac
142 ;;
143 *)
144 # Failed to stop
145 log_end_msg 1
146 ;;
147 esac
148 ;;
149 *)
150 #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
151 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
152 exit 3
153 ;;
154 esac
155
156 :

mercurial