GPSドングルから出力されたGPS値を読み取るプロジェクトを行っており、プログラムでgpsdデーモンを開始する必要があります。
つまり、次のコマンドを自動化する必要があります。須藤 gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
上記のようにデーモンを手動で起動した後、コードから座標を読み取ることができました。しかし、コードからデーモンを起動する方法がわかりません。
gpsd はデーモンなので、起動時にデーモンが自動的に実行されるように設定するだけです。これを行う方法は、使用している起動システムによって異なります。たとえば、systemd がある場合は、次のようなgpsd.serviceファイルを作成する必要があります。
[Unit]
Description=GPSd daemon service file
[Service]
Type=forking
User=root
Group=dialout
TimeoutStartSec=0
ExecStart=/usr/local/sbin/gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
[Install]
# Grouping mechanism that let systemd start groups of processes up at the same time
WantedBy=multi-user.target
次にインストールし/lib/systemd/system
、最後に次のコマンドを使用します
$ sudo systemctl enable gpsd
$ sudo systemctl start gpsd
start コマンドは、システムを再起動せずに gpsd を systemd デーモンとして実行するだけです。
Debianの場合はそれだけです
dpkg-reconfigure gps