Skip to content

Commit 7aa6b88

Browse files
committed
Add missing example init script for mavlink daemon.
Thanks @jmachuca77 for noticing that this was missing!
1 parent fadb293 commit 7aa6b88

File tree

1 file changed

+157
-0
lines changed

1 file changed

+157
-0
lines changed

scripts/mavgateway

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

0 commit comments

Comments
 (0)