Qué son los procesos en Linux: guía completa para entender cómo funciona tu sistema


Introducción


Cuando usas Linux, todo lo que ocurre en el sistema gira alrededor de un concepto clave: los procesos.

Cada programa que ejecutas, cada servicio que corre en segundo plano, cada tarea automatizada… todo eso son procesos.


Entender los procesos en Linux es uno de los puntos más importantes si quieres:

  • administrar servidores
  • trabajar con VPS
  • hacer debugging
  • optimizar rendimiento
  • entender por qué algo falla
  • manejar servicios como MySQL, Nginx o PHP
  • usar herramientas como top, ps, htop o systemctl

Si no entiendes procesos, estás “a ciegas”.

Si los entiendes, empiezas a controlar realmente el sistema.


Qué es un proceso en Linux


Un proceso es simplemente un programa en ejecución.

Por ejemplo:

  • cuando abres el navegador → se crea un proceso
  • cuando ejecutas mysql → proceso
  • cuando corre Apache o Nginx → procesos
  • cuando usas un script → proceso
  • incluso la terminal → es un proceso

Linux está constantemente ejecutando procesos.



Qué diferencia hay entre programa y proceso


  • Programa → código almacenado (ej: /usr/bin/php)
  • Proceso → ese programa ejecutándose en memoria

👉 Es decir:

El programa es la receta, el proceso es el plato ya preparado.


Cómo ver procesos en Linux


1. Usando ps

El comando más básico:

ps

Esto muestra procesos del usuario actual.


Pero el más útil:

ps aux

👉 Te muestra:

  • todos los procesos
  • usuario
  • uso de CPU
  • uso de memoria
  • PID (ID del proceso)
  • comando ejecutado

Ejemplo:

ps aux | grep nginx

Esto te ayuda a buscar procesos específicos.



2. Usando top

top

Esto abre una vista en tiempo real.

Puedes ver:

  • procesos activos
  • uso de CPU
  • uso de RAM
  • procesos que más consumen

👉 Muy útil para debugging.



3. Usando htop (recomendado)

htop

(Si no lo tienes: sudo apt install htop)

Ventajas:

  • interfaz más clara
  • navegación con teclado
  • puedes matar procesos fácilmente

Qué es el PID (Process ID)


Cada proceso tiene un identificador único: el PID.

Ejemplo:

ps aux | grep mysql

Salida:

mysql   1234  ...

👉 El PID es 1234.

Esto es clave porque puedes usarlo para:

  • detener procesos
  • monitorizarlos
  • analizarlos

Tipos de procesos en Linux


1. Procesos en foreground

Son los que ves directamente en la terminal.

Ejemplo:

python script.py

👉 La terminal queda ocupada.



2. Procesos en background


Se ejecutan en segundo plano.

Ejemplo:

python script.py &

👉 La terminal queda libre.



3. Procesos daemon


Son procesos que corren en segundo plano de forma permanente.

Ejemplos:

  • nginx
  • mysql
  • sshd

👉 Son servicios del sistema.



Cómo matar un proceso


Usando kill

kill PID

Ejemplo:

kill 1234

Forzar cierre

kill -9 1234

⚠️ Esto mata el proceso de forma agresiva.



Usando nombre del proceso

pkill nginx

O:

killall nginx

Cómo ver procesos por usuario

ps -u irak

Cómo ver el proceso padre (PPID)


Los procesos pueden crear otros procesos.

Ejemplo:

ps -ef

Verás una columna llamada PPID.

👉 Esto indica qué proceso creó a otro.



Qué es el árbol de procesos


Linux organiza procesos como un árbol.

Puedes verlo con:

pstree

👉 Muy útil para entender relaciones entre procesos.



Prioridad de procesos (nice y renice)


No todos los procesos tienen la misma prioridad.

Puedes verla en:

top

Y cambiarla:

renice 10 -p 1234

👉 Esto afecta el uso de CPU.



Casos reales


Caso 1: tu servidor está lento

Usas:

top

👉 Detectas un proceso consumiendo 100% CPU.



Caso 2: un servicio no responde

ps aux | grep mysql

👉 Ves si está corriendo.



Caso 3: quieres cerrar algo colgado

kill -9 PID

Errores comunes

  • matar procesos sin saber qué hacen
  • usar kill -9 siempre
  • no revisar PID correcto
  • no entender procesos en background
  • ignorar consumo de recursos


Conclusión:


Los procesos son el corazón de Linux.

Si entiendes:

  • cómo verlos
  • cómo gestionarlos
  • cómo analizarlos

👉 ya estás a otro nivel en administración de sistemas.