Я работаю над системой Yocto Linux, которая имеет ограниченный набор доступных инструментов Linux. Я хотел убить процесс, который использовал определенный порт (1883).
Сначала, чтобы увидеть, какие порты мы слушаем, я использовал следующую команду:
root@root:~# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp 0 0 localhost.localdomain:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
tcp 0 0 :::hostmon :::* LISTEN
tcp 0 0 localhost:domain :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::1883 :::* LISTEN
Затем я нашел имя процесса с использованием порта 1883 следующим образом:
root@root:~# fuser 1883/tcp
290
root@root:~# ps | grep 290
290 mosquitt 25508 S /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
12141 root 8444 S grep 290
Как мы видим выше, эта программа /usr/sbin/mosquitto
использует порт 1883.
Наконец, я убил процесс:
root@root:~# systemctl stop mosquitto
Я использовал, systemctl
потому что в этом случае это был сервис systemd.