我正在使用 adafruit 的 GPS 帽子。
根据文件
启动 gpsd 并指示它使用 HW UART。只需输入以下命令:
sudo gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock
虽然这确实有效,但我正在尝试找到一种在重新启动时自动调用它的方法。我尝试将它放在一个 .py 文件中,并在机器以 cronjob 重新启动时调用它,但这不起作用。(无效的语法)。希望能帮助我完成这件事。
谢谢
最快和最简单的方法是将上述命令放入/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
. 这是通过update-rc.d
基于 Debian 的发行版和systemctl
RHEL 上的命令完成的。
如果您让我们知道您的 linux 发行版,我们可以更具体。