最快,最简单的方法就是把上面的命令中/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发行版,我们可以更具体。
这是一个覆盆子pi所以,这是rasberrian jessie。 – Niana
不知道是否相关,但安装GPS帽子的指示要求杀死该gpsd serv.ce.在这里引用“注意,如果你使用的是Raspbian Jessie或更新版本,你需要禁用gpsd安装的systemd服务,这个服务有systemd监听本地套接字并且在客户端连接时运行gpsd,但是它也会会干扰手动运行的其他gpsd实例(如本指南中所述),您将需要通过运行以下命令来禁用gpsd systemd服务:“ – Niana
似乎您已在/ etc/init中拥有'gpsd'文件.d'被禁用,你只是想创建一个新的工作不同?也许'/ etc/rc.local'是一个更好的解决方案......不确定! – urban