Introducción
En este laboratorio, aprenderás las habilidades fundamentales de Linux para administrar y monitorear procesos. Explorarás cómo listar todos los procesos en ejecución en tu sistema utilizando el comando ps aux, que proporciona una instantánea de los procesos actuales con información detallada como el usuario, el PID, el uso de CPU y memoria.
Además, descubrirás cómo encontrar de manera eficiente procesos específicos utilizando el comando pgrep y obtener información sobre la actividad de los procesos en tiempo real y el consumo de recursos mediante el uso del comando top. Estas técnicas son esenciales para la administración del sistema, la resolución de problemas y la comprensión del rendimiento del sistema.
Listar procesos en ejecución con ps aux
En este paso, aprenderás cómo ver los procesos que se están ejecutando actualmente en tu sistema Linux utilizando el comando ps. Los procesos son simplemente programas que se están ejecutando. Entender cómo listar e identificar procesos es una habilidad fundamental en la administración y resolución de problemas de sistemas Linux.
El comando ps se utiliza para informar una instantánea de los procesos actuales. Cuando se utiliza con ciertas opciones, puede proporcionar mucha información detallada.
Vamos a utilizar el comando ps con las opciones aux. Estas opciones se utilizan comúnmente juntas para mostrar todos los procesos en ejecución en el sistema en un formato amigable para el usuario.
a: Muestra todos los procesos.u: Muestra el usuario y el propietario del proceso.x: Muestra los procesos que no tienen un terminal de control (útil para ver los procesos en segundo plano).
Abre tu terminal si no está abierta. Por defecto, debes estar en el directorio ~/project.
Escribe el siguiente comando y presiona Enter:
ps aux
Verás una larga lista de procesos, similar a esta (la salida exacta variará):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 16840 9880 ? Ss Jul23 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Jul23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Jul23 0:00 [rcu_gp]
...
labex 12345 0.1 0.5 123456 54321 pts/0 Ss HH:MM 0:00 /usr/bin/zsh
labex 12367 0.0 0.1 21000 5000 pts/0 R+ HH:MM 0:00 ps aux
...
Analicemos las columnas que ves:
USER: El usuario que es propietario del proceso.PID: El ID del proceso, un número único para cada proceso en ejecución.%CPU: El porcentaje de tiempo de CPU que está utilizando el proceso.%MEM: El porcentaje de memoria física que está utilizando el proceso.VSZ: Virtual Set Size (tamaño del conjunto virtual), la cantidad total de memoria virtual utilizada por el proceso.RSS: Resident Set Size (tamaño del conjunto residente), la cantidad de memoria física utilizada por el proceso.TTY: El terminal de control para el proceso (si lo hay).?significa que no hay terminal de control.STAT: El estado del proceso (por ejemplo,Rpara en ejecución,Spara en espera,Zpara zombie).START: La hora en que se inició el proceso.TIME: El tiempo acumulado de CPU que ha utilizado el proceso.COMMAND: El comando que inició el proceso.
Desplazarte por esta salida puede resultar abrumador. En el siguiente paso, aprenderás cómo filtrar esta salida para encontrar procesos específicos.
Haz clic en Continuar para continuar.
Encontrar un proceso específico utilizando pgrep
En el paso anterior, viste que ps aux puede generar una gran cantidad de salida. A menudo, solo quieres encontrar un proceso específico. El comando pgrep está diseñado para este propósito. Busca procesos basándose en su nombre y devuelve sus IDs de proceso (PIDs).
La sintaxis básica de pgrep es pgrep [opciones] patrón. El patrón suele ser el nombre del proceso que estás buscando.
Intentemos encontrar el PID del proceso zsh, que es la shell que estás utilizando actualmente en la terminal.
Escribe el siguiente comando y presiona Enter:
pgrep zsh
Deberías ver uno o más números impresos en la terminal. Estos son los PIDs de los procesos zsh en ejecución.
12345
(El número exacto será diferente para ti).
Si quieres ver el comando completo asociado con el PID encontrado por pgrep, puedes combinarlo con el comando ps. La opción -p de ps te permite especificar un PID.
Vamos a encontrar el comando completo para el proceso zsh utilizando su PID. Primero, ejecuta pgrep zsh de nuevo para obtener el PID actual. Supongamos que el PID es 12345 para este ejemplo (reemplaza 12345 con el PID real que obtengas).
Ahora, utiliza ps -p seguido del PID:
ps -p 12345
Verás una salida similar a esta:
PID TTY TIME CMD
12345 pts/0 00:00:00 zsh
Esto confirma que el PID 12345 corresponde al comando zsh.
pgrep es una forma rápida de encontrar el PID de un proceso cuando conoces su nombre. Esto es especialmente útil cuando necesitas el PID para otros comandos, como terminar un proceso (lo aprenderás en un futuro laboratorio).
Haz clic en Continuar para pasar al siguiente paso.
Monitorear detalles de procesos con el comando top
En este paso, aprenderás sobre el comando top, que proporciona una vista dinámica y en tiempo real de los procesos que se ejecutan en tu sistema. Mientras que ps aux te da una instantánea, top se actualiza continuamente, mostrándote qué procesos están utilizando más CPU y memoria.
El comando top es muy útil para monitorear el rendimiento del sistema e identificar procesos que pueden estar consumiendo recursos excesivos.
Escribe el siguiente comando en tu terminal y presiona Enter:
top
Tu terminal cambiará para mostrar una lista de procesos que se actualiza constantemente. La salida se parece a esto:
top - HH:MM:SS up X days, HH:MM, X users, load average: X.XX, X.XX, X.XX
Tasks: XXX total, X running, XXX sleeping, X stopped, X zombie
%Cpu(s): X.X us, X.X sy, X.X ni, XX.X id, X.X wa, X.X hi, X.X si, X.X st
MiB Mem : XXXX.X total, XXXX.X free, XXXX.X used, XXX.X buff/cache
MiB Swap: XXXX.X total, XXXX.X free, XXXX.X used. XXXX.X avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 labex 20 0 123456 54321 32100 S 0.1 0.5 0:00.10 zsh
12367 labex 20 0 21000 5000 3000 R 0.0 0.1 0:00.05 top
...
Veamos las áreas clave de la salida de top:
Área de resumen (parte superior): Esta sección muestra información de resumen del sistema, incluyendo:
- Hora actual y tiempo de actividad del sistema.
- Número de usuarios conectados.
- Promedio de carga (número promedio de procesos esperando para ejecutarse en los últimos 1, 5 y 15 minutos).
- Número total de tareas (procesos) y sus estados (en ejecución, en espera, detenidos, zombies).
- Desglose del uso de CPU (usuario, sistema, inactivo, etc.).
- Uso de memoria (total, libre, utilizada, buffer/caché).
- Uso del espacio de intercambio (swap).
Área de lista de procesos (parte inferior): Esta sección lista los procesos individuales, ordenados por defecto por uso de CPU. Las columnas son similares a las de
ps aux, perotoplas actualiza en tiempo real. Las columnas clave incluyen:PID: ID del proceso.USER: Propietario del proceso.%CPU: Porcentaje de uso de CPU.%MEM: Porcentaje de uso de memoria.COMMAND: Nombre del comando.
Mientras top está en ejecución, puedes interactuar con él utilizando varias teclas:
- Presiona
qpara salir detop. - Presiona
Mpara ordenar la lista de procesos por uso de memoria. - Presiona
Ppara ordenar la lista de procesos por uso de CPU (esto es el valor por defecto). - Presiona
kpara terminar un proceso (se te pedirá el PID). ¡Ten cuidado con esto!
Tómate un momento para observar los procesos y cómo cambian el uso de CPU y memoria. Verás el propio proceso top cerca de la parte superior de la lista porque está utilizando activamente la CPU para actualizar la pantalla.
Cuando hayas terminado de explorar top, presiona q para salir y volver al indicador de terminal normal.
Haz clic en Continuar para completar este paso y el laboratorio.
Resumen
En este laboratorio, has aprendido técnicas fundamentales para comprobar si un proceso está en ejecución en Linux. Comenzaste utilizando el comando ps aux para listar todos los procesos en ejecución en el sistema, comprendiendo las diversas columnas como USER, PID, %CPU y %MEM, que proporcionan una instantánea de la actividad de los procesos.
Luego, exploraste cómo encontrar de manera eficiente un proceso específico utilizando el comando pgrep, que busca procesos basándose en su nombre u otros atributos y devuelve su ID de proceso (PID). Finalmente, aprendiste cómo monitorear los detalles de los procesos en tiempo real utilizando el comando top, que proporciona una vista dinámica del uso de recursos del sistema y las estadísticas de los procesos individuales, lo que te permite observar el consumo de CPU y memoria.



