2013-03-21 256 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守護進程運行,而無需重新啓動系統。