我正在开发一个dronekit
follow_me 项目。因此,在一个终端中,我运行python follow_me.py
,在另一个终端中运行run-fake-gps.sh
。然后出现以下错误:
Sending fake GPS data
Processing fake-gps-data.log
gpsd:ERROR: can't bind to IPv4 port 2947, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't bind to IPv6 port 2947, Address already in use
gpsd:ERROR: maybe gpsd is already running!
也许这些错误导致我follow_me.py
在结束之前就停止了。
为了停止我运行的进程
start-stop-daemon -K --name gpsd
当我跑步的时候sudo netstat -ntlp | grep 2947
我得到如下信息:
tcp 0 0 127.0.0.1:2947 0.0.0.0:* LISTEN 1/init
tcp6 0 0 ::1:2947 :::* LISTEN 1/init
运行 python follow_me.py 时它会自动连接到
Connecting to vehicle on: tcp:127.0.0.1:5760
我确实在新的终端中运行
sudo netstat -ntlp | grep LISTEN
输出如下:
tcp 0 0 127.0.1.1:53 0.0.0.0:* 监听 1775/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* 监听 832/cupsd
tcp 0 0 0.0.0.0:5760 0.0.0.0:* 监听 15355/apm
tcp 0 0 0.0.0.0:5762 0.0.0.0:* 监听 15355/apm
tcp 0 0 0.0.0.0:5763 0.0.0.0:* 监听 15355/apm
tcp 0 0 127.0.0.1:2947 0.0.0.0:* 监听 1/init
tcp 0 0 127.0.0.1:27017 0.0.0.0:* 监听 836/mongod
tcp 0 0 127.0.0.1:3306 0.0.0.0:* 监听 998/mysqld
tcp6 0 0 :::80 :::* 监听 1197/apache2
tcp6 0 0 :::21 :::* 监听 961/vsftpd
tcp6 0 0 ::1:631 :::* 监听 832/cupsd
tcp6 0 0 ::1:2947 :::* 监听 1/init
可能存在什么问题?我该如何解决?
答案1
如果在运行时使用该命令python follow_me.py
:
sudo netstat -ntlp | grep LISTEN
然后你应该看到你的 pythonfollow_me.py
正在使用端口 2947。你可以通过在两个脚本之一中使用另一个端口来解决这个问题。