2016-04-10 175 views
1

我正在使用adafruit的GPS帽子。在启动时启动gpsd服务

根据该文件

启动GPSD,将它使用硬件UART。只需输入以下命令 :

须藤GPSD的/ dev/ttyAMA0 -F /var/run/gpsd.sock

虽然这其实工作中,我试图找到一种方式来自动调用这在重新启动。我试过把它放在一个.py文件中,并在机器在cronjob中重新启动时调用它,但这不起作用。 (无效的语法)。希望我能得到帮助来完成这一点。

谢谢

回答

0

最快,最简单的方法就是把上面的命令中/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发行版,我们可以更具体。

+0

这是一个覆盆子pi所以,这是rasberrian jessie。 – Niana

+0

不知道是否相关,但安装GPS帽子的指示要求杀死该gpsd serv.ce.在这里引用“注意,如果你使用的是Raspbian Jessie或更新版本,你需要禁用gpsd安装的systemd服务,这个服务有systemd监听本地套接字并且在客户端连接时运行gpsd,但是它也会会干扰手动运行的其他gpsd实例(如本指南中所述),您将需要通过运行以下命令来禁用gpsd systemd服务:“ – Niana

+0

似乎您已在/ etc/init中拥有'gpsd'文件.d'被禁用,你只是想创建一个新的工作不同?也许'/ etc/rc.local'是一个更好的解决方案......不确定! – urban