summaryrefslogtreecommitdiff
path: root/system/gpsd/rc.gpsd.new
diff options
context:
space:
mode:
Diffstat (limited to 'system/gpsd/rc.gpsd.new')
-rw-r--r--system/gpsd/rc.gpsd.new60
1 files changed, 60 insertions, 0 deletions
diff --git a/system/gpsd/rc.gpsd.new b/system/gpsd/rc.gpsd.new
new file mode 100644
index 0000000000..0eee30306a
--- /dev/null
+++ b/system/gpsd/rc.gpsd.new
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# /etc/rc.d/rc.gpsd
+# Start/stop/restart gpsd
+# Sebastian Arcus and David Spencer
+#
+# To enable automatic discovery of your GPS device by udev, uncomment the
+# appropriate line of /etc/udev/rules.d/97-gpsd.rules
+#
+# Configuration options may be set in /etc/rc.d/rc.gpsd.conf
+# but the defaults will usually be adequate.
+
+gpsd_start() {
+
+ if [ ! -x /lib/udev/gpsd.hotplug.wrapper ]; then
+ echo "$(basename $0): /lib/udev/gpsd.hotplug.wrapper not found (or not executable); cannot start."
+ fi
+
+ if [ -r /etc/rc.d/rc.gpsd.conf ]; then
+ . /etc/rc.d/rc.gpsd.conf
+ fi
+ # Set config defaults in case the .conf file was absent or bogus
+ GPSD_DEVICES="${GPSD_DEVICES:-/dev/gps*}"
+ GPSD_OPTIONS="${GPSD_OPTIONS:-}"
+ GPSD_SOCKET="${GPSD_SOCKET:-/var/run/gpsd.sock}"
+
+ for DEVNAME in $GPSD_DEVICES; do
+ if [ -e $DEVNAME ]; then
+ echo "$(basename $0): Starting gpsd for $DEVNAME"
+ ACTION=add DEVNAME=$DEVNAME /lib/udev/gpsd.hotplug.wrapper
+ else
+ echo "$(basename $0): $DEVNAME not found, gpsd not started"
+ fi
+ done
+
+}
+
+gpsd_stop() {
+ echo "Stopping gpsd..."
+ killall gpsd >/dev/null 2>&1
+ return 0
+}
+
+case "$1" in
+ start)
+ gpsd_start
+ ;;
+ stop)
+ gpsd_stop
+ ;;
+ restart)
+ gpsd_stop
+ sleep 1
+ gpsd_start
+ ;;
+ *)
+ echo "Usage: $0 start|stop|restart"
+ exit 1
+ ;;
+esac