La gestión de procesos es una habilidad fundamental para cualquier administrador de sistemas Linux. Los procesos son instancias de programas en ejecución y comprender cómo gestionarlos es crucial para mantener un sistema eficiente y estable. En esta sección, aprenderás a listar, monitorear, y controlar procesos en Linux.

Conceptos Clave

  1. Proceso: Una instancia de un programa en ejecución.
  2. PID (Process ID): Un identificador único asignado a cada proceso.
  3. PPID (Parent Process ID): El identificador del proceso padre.
  4. Estado del Proceso: Indica si el proceso está en ejecución, detenido, en espera, etc.
  5. Prioridad del Proceso: Determina la importancia del proceso en la asignación de recursos del CPU.

Listar Procesos

Comando ps

El comando ps se utiliza para listar los procesos en ejecución. Aquí hay algunos ejemplos de uso:

# Listar todos los procesos en formato estándar
ps

# Listar todos los procesos en formato detallado
ps -ef

# Listar procesos de un usuario específico
ps -u username

Comando top

El comando top proporciona una vista dinámica en tiempo real de los procesos en ejecución.

# Ejecutar top
top

Dentro de top, puedes usar varias teclas para interactuar:

  • q: Salir de top.
  • h: Mostrar ayuda.
  • k: Matar un proceso (te pedirá el PID).
  • r: Renombrar la prioridad de un proceso.

Comando htop

htop es una versión mejorada de top con una interfaz más amigable. Debes instalarlo antes de usarlo:

# Instalar htop (en distribuciones basadas en Debian)
sudo apt-get install htop

# Ejecutar htop
htop

Monitorear Procesos

Comando pidof

El comando pidof se utiliza para encontrar el PID de un proceso específico.

# Encontrar el PID de un proceso llamado "bash"
pidof bash

Comando pgrep

El comando pgrep busca procesos basados en el nombre y otros atributos.

# Buscar procesos con el nombre "sshd"
pgrep sshd

Comando pstree

El comando pstree muestra los procesos en forma de árbol, lo que facilita ver la jerarquía de procesos.

# Mostrar la jerarquía de procesos
pstree

Controlar Procesos

Comando kill

El comando kill se utiliza para enviar señales a los procesos. La señal más común es SIGKILL (9), que termina un proceso.

# Terminar un proceso con PID 1234
kill 1234

# Forzar la terminación de un proceso con PID 1234
kill -9 1234

Comando killall

El comando killall termina todos los procesos que coinciden con un nombre dado.

# Terminar todos los procesos llamados "firefox"
killall firefox

Comando nice y renice

Estos comandos se utilizan para ajustar la prioridad de los procesos.

# Iniciar un proceso con una prioridad específica
nice -n 10 command

# Cambiar la prioridad de un proceso existente
renice -n 5 -p 1234

Ejercicios Prácticos

Ejercicio 1: Listar y Monitorear Procesos

  1. Objetivo: Listar todos los procesos en ejecución y encontrar el PID del proceso sshd.
  2. Instrucciones:
    • Usa el comando ps para listar todos los procesos.
    • Usa el comando pgrep para encontrar el PID del proceso sshd.

Solución:

# Listar todos los procesos
ps -ef

# Encontrar el PID del proceso sshd
pgrep sshd

Ejercicio 2: Terminar un Proceso

  1. Objetivo: Terminar un proceso específico utilizando su PID.
  2. Instrucciones:
    • Encuentra el PID de un proceso en ejecución (por ejemplo, gedit).
    • Usa el comando kill para terminar el proceso.

Solución:

# Encontrar el PID del proceso gedit
pidof gedit

# Terminar el proceso gedit (reemplaza 1234 con el PID real)
kill 1234

Ejercicio 3: Ajustar la Prioridad de un Proceso

  1. Objetivo: Cambiar la prioridad de un proceso en ejecución.
  2. Instrucciones:
    • Encuentra el PID de un proceso en ejecución (por ejemplo, firefox).
    • Usa el comando renice para cambiar la prioridad del proceso.

Solución:

# Encontrar el PID del proceso firefox
pidof firefox

# Cambiar la prioridad del proceso firefox (reemplaza 1234 con el PID real)
renice -n 5 -p 1234

Conclusión

En esta sección, has aprendido a listar, monitorear y controlar procesos en Linux. Estas habilidades son esenciales para la administración efectiva del sistema y te permitirán mantener un entorno de trabajo eficiente y estable. En la próxima sección, exploraremos la programación de tareas con cron, una herramienta poderosa para automatizar tareas en Linux.

Maestría en Linux: De Principiante a Avanzado

Módulo 1: Introducción a Linux

Módulo 2: Comandos Básicos de Linux

Módulo 3: Habilidades Avanzadas en la Línea de Comandos

Módulo 4: Scripting en Shell

Módulo 5: Administración del Sistema

Módulo 6: Redes y Seguridad

Módulo 7: Temas Avanzados

Módulo 8: Proyectos Prácticos

© Copyright 2024. Todos los derechos reservados