4

adafruit の GPS ハットを使用しています。

資料によると

gpsd を起動し、HW UART を使用するように指示します。次のコマンドを入力するだけです。

須藤 gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock

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

ありがとうございました

4

1 に答える 1

2

最速かつ最も簡単な方法は、上記のコマンドを/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. これはupdate-rc.d、Debian ベースのディストリビューションおよびsystemctlRHEL でコマンドを使用して実行されます。

Linux ディストリビューションをお知らせいただければ、より具体的にお答えできます。

于 2016-04-10T19:13:48.077 に答える