Estoy trabajando en un sistema Yocto Linux que tiene un conjunto limitado de herramientas Linux disponibles. Quería matar el proceso que estaba usando un puerto en particular (1883).
Primero, para ver qué puertos estamos escuchando, utilicé el siguiente comando:
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
Luego, encontré el nombre del proceso usando el puerto 1883 de la siguiente manera:
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
Como podemos ver arriba, es el programa /usr/sbin/mosquitto
que usa el puerto 1883.
Por último, maté el proceso:
root@root:~# systemctl stop mosquitto
Solía systemctl
becuase en este caso se trataba de un servicio systemd.