4

我正在使用 adafruit 的 GPS 帽子。

根据文件

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

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

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

谢谢

4

1 回答 1

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. 这是通过update-rc.d基于 Debian 的发行版和systemctlRHEL 上的命令完成的。

如果您让我们知道您的 linux 发行版,我们可以更具体。

于 2016-04-10T19:13:48.077 回答