2013-03-21 258 views
0

我正在做一个项目,读取GPS加密狗输出的GPS值,需要以编程方式 启动gpsd守护进程。以编程方式在linux中启动GPSD守护进程

即我需要自动执行以下命令; sudo gpsd/dev/ttyUSB0 -F /var/run/gpsd.sock

如上所述,手动启动守护程序后,我能够通过代码读取坐标。但不知道如何通过他的代码启动守护进程。

+2

避免在程序中使用'sudo'。也许你可以配置你的'udev'来在加密狗插入或激活时守护守护进程。 – 2013-03-21 06:20:40

+0

实际上,这是我需要知道的......如何配置以在加密狗插入时启动守护进程 – Taani 2013-03-21 06:31:49

+0

仔细研究'udev'的文档... – 2013-03-21 06:32:36

回答

0

为Debian它只是

dpkg-reconfigure gps 
0

由于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 

开始命令只是将gpsd作为systemd守护进程运行,而无需重新启动系统。