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.

ps

top

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

top

htop

htop es una versión mejorada de top con una interfaz más amigable. Puede que necesites instalarlo primero.

htop

Ejemplo de Uso de ps

ps aux
  • 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.

kill <PID>

killall

killall termina todos los procesos que coinciden con el nombre dado.

killall <nombre_proceso>

pkill

pkill envía señales a los procesos basados en un patrón de nombre.

pkill <patrón>

Ejemplo de Uso de kill

ps aux | grep myprocess
kill 1234

Prioridades de Procesos

nice

El comando nice se utiliza para iniciar un proceso con una prioridad específica.

nice -n 10 <comando>

renice

renice cambia la prioridad de un proceso en ejecución.

renice 10 -p <PID>

Ejemplo de Uso de nice

nice -n 5 myscript.sh

Ejecutar Procesos en Segundo Plano

&

El símbolo & al final de un comando ejecuta el proceso en segundo plano.

./myscript.sh &

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 &

./myscript.sh &

Monitoreo de Procesos

ps

Ya hemos visto ps para listar procesos. También se puede usar para monitorear procesos específicos.

ps -p <PID>

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.

watch -n 1 'ps -p <PID>'

Ejercicios Prácticos

Ejercicio 1: Listar Procesos

  1. Usa ps para listar todos los procesos en ejecución.
  2. Usa top para monitorear los procesos en tiempo real.

Ejercicio 2: Control de Procesos

  1. Encuentra el PID de un proceso específico usando ps y grep.
  2. Termina el proceso usando kill.

Ejercicio 3: Prioridades de Procesos

  1. Inicia un proceso con una prioridad baja usando nice.
  2. Cambia la prioridad de un proceso en ejecución usando renice.

Ejercicio 4: Ejecutar en Segundo Plano

  1. Ejecuta un script en segundo plano usando &.
  2. Trae el proceso al primer plano usando fg.

Soluciones

Ejercicio 1

ps aux
top

Ejercicio 2

ps aux | grep myprocess
kill 1234

Ejercicio 3

nice -n 10 myscript.sh
ps aux | grep myscript
renice 5 -p 1234

Ejercicio 4

./myscript.sh &
fg %1

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.

© Copyright 2024. Todos los derechos reservados