重启时启动gpsd服务

时间:2016-04-10 19:03:01

标签: linux service gpsd

我正在使用adafruit的GPS帽子。

根据文件

  

启动gpsd并指示它使用HW UART。只需输入以下内容   命令:

     

sudo gpsd / dev / ttyAMA0 -F /var/run/gpsd.sock

虽然这确实有效,但我试图找到一种方法在重启时自动调用它。我已经尝试将它放在一个.py文件中并在机器重新启动cronjob时调用它,但这不起作用。 (无效的语法)。希望我能得到帮助来实现这一目标。

谢谢

1 个答案:

答案 0 :(得分:2)

最快最简单的方法是将上述命令放在/etc/rc.local文件中(不含sudo!)。这是在启动时调用的shell脚本。

更合适的方法是在/etc/init.d目录中创建服务文件。要开始在该目录中查看任何简单文件,请复制并修改它,并确保其可执行。基本(未经测试)示例:

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          gpsd
# Required-Start:    
# Required-Stop:
# Default-Start:     1 2 3 4 5
# Default-Stop:
# Short-Description: Run my GPSd
### END INIT INFO
#

case "$1" in
  start)
    gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock
    ;;
  stop)
    killall -KILL gpsd
    ;;
  restart|force-reload)
    killall -KILL gpsd
    sleep 3
    gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock
    ;;
  *) echo "Usage: $0 {start|stop|restart|force-reload}" >&2; exit 1 ;;
esac

确保启用后,系统会自动调用service gpsd start。这是通过基于Debian的发行版上的update-rc.d命令和RHEL上的systemctl来完成的。

如果您告诉我们您的Linux发行版,我们可以更加具体。