重启时启动 gpsd 服务

Start gpsd service at reboot

我正在使用 adafruit 的 GPS 帽子。

根据文档

Start gpsd and direct it to use HW UART. Simply entering the following command:

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 "" 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: [=10=] {start|stop|restart|force-reload}" >&2; exit 1 ;;
esac

一旦你拥有它,请确保它在启动时启用,这样你的系统将自动调用 service gpsd start。这是在基于 Debian 的发行版上使用 update-rc.d 命令和在 RHEL 上使用 systemctl 命令完成的。

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