为什么运行 fake run-fake-gps.sh 时会出现这些错误?

为什么运行 fake run-fake-gps.sh 时会出现这些错误?

我正在开发一个dronekitfollow_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。你可以通过在两个脚本之一中使用另一个端口来解决这个问题。

相关内容