En este módulo, aprenderemos cómo gestionar procesos en Bash. La gestión de procesos es una habilidad esencial para cualquier administrador de sistemas o desarrollador que trabaje en un entorno Unix/Linux. Los procesos son instancias de programas en ejecución, y Bash proporciona varias herramientas y comandos para interactuar con ellos.
Contenidos
Listar Procesos
Para gestionar procesos, primero necesitamos saber qué procesos están en ejecución. Los siguientes comandos son útiles para listar procesos:
ps
El comando ps
muestra una instantánea de los procesos actuales.
top
El comando top
proporciona una vista dinámica en tiempo real de los procesos en ejecución.
htop
htop
es una versión mejorada de top
con una interfaz más amigable. Puede que necesites instalarlo primero.
Ejemplo de Uso de ps
a
: Muestra todos los usuarios.u
: Muestra el usuario que ejecuta el proceso.x
: Muestra procesos sin terminal de control.
Control de Procesos
kill
El comando kill
se utiliza para enviar señales a los procesos. La señal más común es SIGTERM
(15), que termina el proceso de manera segura.
killall
killall
termina todos los procesos que coinciden con el nombre dado.
pkill
pkill
envía señales a los procesos basados en un patrón de nombre.
Ejemplo de Uso de kill
Prioridades de Procesos
nice
El comando nice
se utiliza para iniciar un proceso con una prioridad específica.
renice
renice
cambia la prioridad de un proceso en ejecución.
Ejemplo de Uso de nice
Ejecutar Procesos en Segundo Plano
&
El símbolo &
al final de un comando ejecuta el proceso en segundo plano.
bg
y fg
bg
: Envía un proceso detenido al segundo plano.fg
: Trae un proceso en segundo plano al primer plano.
Ejemplo de Uso de &
Monitoreo de Procesos
ps
Ya hemos visto ps
para listar procesos. También se puede usar para monitorear procesos específicos.
top
y htop
Ambos comandos son útiles para monitorear el uso de recursos en tiempo real.
watch
El comando watch
ejecuta un comando repetidamente y muestra su salida.
Ejercicios Prácticos
Ejercicio 1: Listar Procesos
- Usa
ps
para listar todos los procesos en ejecución. - Usa
top
para monitorear los procesos en tiempo real.
Ejercicio 2: Control de Procesos
- Encuentra el PID de un proceso específico usando
ps
ygrep
. - Termina el proceso usando
kill
.
Ejercicio 3: Prioridades de Procesos
- Inicia un proceso con una prioridad baja usando
nice
. - Cambia la prioridad de un proceso en ejecución usando
renice
.
Ejercicio 4: Ejecutar en Segundo Plano
- Ejecuta un script en segundo plano usando
&
. - Trae el proceso al primer plano usando
fg
.
Soluciones
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ejercicio 4
Conclusión
En esta sección, hemos cubierto los conceptos básicos y avanzados de la gestión de procesos en Bash. Ahora deberías ser capaz de listar, controlar, priorizar y monitorear procesos de manera efectiva. En el próximo módulo, exploraremos el manejo de errores y la depuración en Bash.
Curso de Programación en Bash
Módulo 1: Introducción a Bash
- ¿Qué es Bash?
- Configurando tu Entorno
- Navegación Básica en la Línea de Comandos
- Entendiendo el Shell
Módulo 2: Comandos Básicos de Bash
- Operaciones con Archivos y Directorios
- Comandos de Procesamiento de Texto
- Permisos y Propiedad de Archivos
- Redirección y Tuberías
Módulo 3: Fundamentos de Scripting
Módulo 4: Scripting Intermedio
Módulo 5: Técnicas Avanzadas de Scripting
- Operaciones Avanzadas con Archivos
- Gestión de Procesos
- Manejo de Errores y Depuración
- Expresiones Regulares
Módulo 6: Trabajando con Herramientas Externas
Módulo 7: Automatización y Programación
Módulo 8: Mejores Prácticas y Optimización
- Escribiendo Código Legible
- Optimizando Scripts en Bash
- Consideraciones de Seguridad
- Control de Versiones con Git