2016-04-10 19 views
1

私はadafruitのGPSハットを使用しています。再起動時にgpsdサービスを開始する

文書

スタートGPSDによるとHW UARTを使用するように指示します。単純に次のコマンドを入力 :これは、実際の仕事にしていますが

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

することは、私は自動的に呼び出す方法を見つけようとしていますこれは再起動時に発生します。私はそれを.pyファイルに入れてみて、マシンがcronjobで再起動したときにそれを呼び出そうとしましたが、うまくいきません。 (無効な構文)。私はこれを達成するのを助けることができたと思った。

答えて

0

最も簡単な方法は、/etc/rc.localファイルに上記のコマンドを置くことですありがとう(sudoなし!)。これは起動時に呼び出されるシェルスクリプトです。これを行うための

より適切な方法は、/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

ラズベリーパイです。それはラスベリジェシーです。 – Niana

+0

関連があるかどうかわかりませんが、GPS Hatをインストールする手順でgpsd serv.ceが強制終了されました。あなたがRaspbian Jessie以降のリリースを使用している場合は、gpsdがインストールするsystemdサービスを無効にする必要があります。このサービスはローカルソケットでlistenし、クライアントが接続するとgpsdを実行します。 。手動で(このガイドでのように)実行されている他のGPSDのインスタンスに干渉するあなたは、以下のコマンドを実行して、GPSDにsystemdサービスを無効にする必要があります:」 – Niana

+0

は、その後に思えますが、すでにの/ etc/initを 'で' gpsd'ファイルを持っていること.d'は無効になっていて、別の方法で新しいものを作成したいだけですか?多分 '/ etc/rc.local'はよりよい解決策です。確かではありません! – urban

関連する問題