Para detener un archivo .bin que se está ejecutando sin
interfaz gráfica y verificar si está funcionando y en qué puerto lo hace,
puedes seguir estos pasos:
1. Verificar si el archivo .bin está funcionando
a. Buscar el proceso por nombre: Usa el comando ps para listar los procesos en ejecución y
filtrar por el nombre del archivo:
ps aux | grep archivo.binEsto mostrará información sobre el proceso, incluyendo su ID de proceso (PID).
b. Verificar puertos abiertos
Si el archivo .bin está utilizando un puerto, puedes
identificarlo con:
netstat -ltnp | grep archivo.bin
-
Opciones:
-
-l: Muestra sockets en escucha. -
-t: Filtra conexiones TCP. -
-n: Muestra direcciones numéricas en lugar de nombres. -
-p: Muestra el ID del proceso y el nombre del programa.
-
c. Usar lsof para listar archivos abiertos
Puedes usar lsof para identificar los puertos que el archivo
.bin está utilizando:
lsof -i -n -P | grep archivo.bin
Esto mostrará el puerto asociado al proceso.
2. Detener el archivo .bin desde la consola
Una vez que hayas identificado el proceso, puedes detenerlo utilizando su PID.
a. Usar kill para detener el proceso
-
Encuentra el PID del proceso con
ps auxonetstat. - Detén el proceso con:
kill -9 PID
-
-
-9fuerza la terminación del proceso.
-
b. Usar pkill para detener por nombre
Si conoces el nombre del archivo .bin, puedes usar:
pkill -9 archivo.bin
Esto detendrá todos los procesos que coincidan con el nombre.
3. Verificar que el proceso se detuvo
Después de ejecutar los comandos para detener el proceso, verifica que ya no está en ejecución:
ps aux | grep archivo.bin
Notas importantes
-
Permisos: Asegúrate de tener permisos suficientes para detener el
proceso (puede requerir
sudo). -
Precaución: Usa
kill -9solo si el proceso no responde a señales normales, ya que fuerza la terminación.
Ejemplo
ps aux | grep servidor_tcp.bin
rodrig 32826 0.0 0.0 2680 1280 ? S 09:07 0:00 /home/rodrig/Escritorio/Practica-Leng-C/servidor_tcp.bin rodrig 33005 0.0 0.0 11916 2304 pts/0 S+ 09:13 0:00 grep --color=auto servidor_tcp.bin
1. Comando: ps aux | grep servidor_tcp.bin
-
ps aux: Muestra información sobre todos los procesos en ejecución en el sistema. -
a: Incluye procesos asociados a todos los usuarios. -
u: Muestra la información en un formato amigable, incluyendo el usuario que ejecutó el proceso. -
x: Incluye procesos que no están conectados directamente a una terminal. -
| grep servidor_tcp.bin: Filtra la salida deps auxpara mostrar solo las líneas que contienen el textoservidor_tcp.bin. Esto se hace para localizar procesos relacionados con ese archivo específico.
2. Salida explicada
La salida indica que hay dos procesos relacionados con el texto
servidor_tcp.bin:
rodrig 32826 0.0 0.0 2680 1280 ? S 09:07 0:00 /home/rodrig/Escritorio/Practica-Leng-C/servidor_tcp.bin rodrig 33005 0.0 0.0 11916 2304 pts/0 S+ 09:13 0:00 grep --color=auto servidor_tcp.bin
Primera línea:
-
rodrig: Usuario que ejecutó el proceso. -
32826: PID (Process ID) del procesoservidor_tcp.bin. Este es el número único que identifica el proceso en ejecución. -
0.0 0.0: Porcentaje de uso de CPU y memoria que consume el proceso (es insignificante en este caso). -
2680: Cantidad de memoria virtual utilizada por el proceso (en KB). -
1280: Cantidad de memoria residente utilizada (en KB). -
?: El proceso no está asociado a una terminal específica. -
S: Estado del proceso. En este caso, significa que está "durmiendo" (sleeping), esperando una acción o evento. -
09:07: Hora en la que el proceso fue iniciado. -
0:00: Tiempo total de CPU utilizado por el proceso. -
/home/rodrig/Escritorio/Practica-Leng-C/servidor_tcp.bin: Ruta absoluta del archivo ejecutable del proceso.
Segunda línea:
-
grepen la salida: Esto se debe a que el comandogrepque usaste también genera su propio proceso para buscar el textoservidor_tcp.binen la salida deps aux. -
33005: Es el PID del procesogrep.
3. Identificar si el proceso está en ejecución
La primera línea confirma que el proceso servidor_tcp.bin está
en ejecución, ya que aparece listado con su PID (32826) y
estado (S, durmiendo).
4. ¿Cómo saber si está asociado a un puerto?
Para verificar si el proceso está utilizando un puerto específico, puedes
usar el comando netstat o lsof:
netstat -ltnp | grep 32826
lsof -i -n -P | grep servidor_tcp.binEsto te mostrará cualquier puerto que el proceso servidor_tcp.bin esté utilizando.
5. Detener el proceso
Para detenerlo, puedes usar el comando kill con el PID
identificado:
kill -9 32826
Conclusión
El comando ps aux | grep servidor_tcp.bin te ayuda a
identificar si un proceso relacionado con servidor_tcp.bin está
en ejecución. La salida indica que efectivamente está corriendo (PID 32826),
y podrías verificar los puertos que está utilizando con herramientas
adicionales como netstat o lsof. Si necesitas
detener el proceso, puedes usar su PID con el comando
kill
