我正在做一个项目,读取 GPS 加密狗输出的 GPS 值,需要以编程方式启动 gpsd 守护进程。
即我需要自动化以下命令;sudo 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 守护进程运行,而无需重新启动系统。
for debian its just
dpkg-reconfigure gps