Detener un archivo .bin que se está ejecutando sin interfaz gráfica en Linux

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.bin 
Esto 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

  1. Encuentra el PID del proceso con ps aux o netstat.
  2. Detén el proceso con:
kill -9 PID 
    • -9 fuerza 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 -9 solo 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 de ps aux para mostrar solo las líneas que contienen el texto servidor_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 proceso servidor_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:

  • grep en la salida: Esto se debe a que el comando grep que usaste también genera su propio proceso para buscar el texto servidor_tcp.bin en la salida de ps aux.
  • 33005: Es el PID del proceso grep.

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.bin
Esto 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

 

 

 

 

 

 

Destacado

Bootloader Avanzado en Ensamblador

Bootloader Avanzado en Ensamblador Características del Bootloader Se carga en la dirección 0x7C00 (BIOS). ...