diff options
Diffstat (limited to 'system/gpsd/rc.gpsd.new')
-rw-r--r-- | system/gpsd/rc.gpsd.new | 60 |
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 |