Я работаю над a 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
Какова могла быть проблема и как я могу зафиксировать ее?
Если Вы используете команду, в то время как Вы работаете python follow_me.py
:
sudo netstat -ntlp | grep LISTEN
, Как я могу видеть, какие порты открыты на моей машине?
Затем необходимо видеть, что python follow_me.py
использует порт 2947. Можно решить это при помощи другого порта в одном из обоих сценариев.