2016-04-10 213 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