12 Gestión de Procesos
Published Apr 8, 2023
En esta clase exploraremos cómo administrar procesos en Linux. Desde entender qué es un proceso hasta manipular su prioridad, visualización y finalización, te guiaremos paso a paso para dominar la gestión de procesos.
1. ¿Qué es un proceso?
Un proceso es un programa en ejecución que utiliza recursos del sistema como CPU, memoria, almacenamiento, etc. Cada proceso tiene un identificador único llamado PID (Process ID), asignado por el kernel.
2. Visualización de procesos
Comando ps
El comando ps
muestra los procesos activos en la terminal actual.
ps
Columnas clave:
- PID: Identificador único del proceso.
- TTY: Terminal asociada al proceso.
- TIME: Tiempo total de CPU usado por el proceso.
- CMD: Comando que inició el proceso.
Ampliar información con ps aux
ps aux
- a: Muestra procesos de todos los usuarios.
- u: Incluye detalles de uso de CPU y memoria.
- x: Incluye procesos en background.
Columnas adicionales:
- %CPU: Porcentaje de CPU usado desde el inicio.
- %MEM: Porcentaje de memoria utilizada.
- STAT: Estado del proceso (Running, Sleeping, Zombie, etc.).
Filtrar procesos con grep
ps aux | grep wireshark
Esto filtra los procesos relacionados con “wireshark”.
3. Monitoreo dinámico de procesos
Comando top
top
muestra procesos en tiempo real, ordenados por uso de CPU o memoria.
top
Teclas útiles:
- C: Mostrar el path completo del comando.
- H: Mostrar ayuda interactiva.
- Q: Salir de
top
.
Comando htop
htop
es una versión interactiva y más amigable de top
.
htop
- Permite seleccionar y finalizar procesos de forma visual.
- Muestra los valores de nice y consumo de recursos claramente.
4. Gestión de prioridades: nice
y renice
Prioridad de procesos
La prioridad en Linux se mide con el valor nice, que varía de -20 (alta prioridad) a 19 (baja prioridad). El valor por defecto es 0.
Iniciar un proceso con prioridad
nice -n 10 /usr/bin/wireshark
Esto inicia Wireshark con un valor de nice de 10.
Nota: Para valores negativos, se necesita permiso de superusuario:
sudo nice -n -10 /usr/bin/wireshark
Modificar prioridad de un proceso existente: renice
renice -n 5 -p PID
Esto cambia el valor nice del proceso con el ID especificado.
5. Finalización de procesos
Comando kill
El comando kill
envía señales a un proceso para manipularlo. Algunas señales comunes son:
- 1 (HUP): Reinicia el proceso.
- 2 (INT): Interrumpe el proceso (como Ctrl+C).
- 9 (KILL): Termina el proceso inmediatamente.
- 15 (TERM): Solicita al proceso que termine de forma ordenada.
Ejemplo:
kill -9 PID
Finalizar desde top
o htop
top
: Presionak
, ingresa el PID y elige la señal.htop
: Selecciona el proceso con las teclas de flecha, presionaF9
y elige la señal.
6. Procesos en segundo plano y foreground
Enviar un proceso al fondo:
Ctrl+Z
Esto pausa el proceso y lo envía al fondo.
Reanudar un proceso en foreground:
fg
7. Calendarización de procesos: cron
y at
cron
Se utiliza para tareas repetitivas como ejecutar scripts diarios, semanales, etc.
Editar crontab:
crontab -e
Formato:Ejemplo:Esto ejecuta
backup.sh
todos los días a las 5:00 AM.Minuto Hora Día-del-Mes Mes Día-de-la-Semana Comando
0 5 * * * /usr/bin/backup.sh
at
Se utiliza para tareas únicas en un momento específico.
Ejemplo:
echo "/usr/bin/cleanup.sh" | at 23:00
Esto ejecutará
cleanup.sh
a las 11:00 PM.Finalizar una tarea programada:
atrm JOB_ID
Conclusión
La gestión de procesos en Linux es fundamental para mantener el rendimiento y la estabilidad del sistema. Desde monitorizar recursos hasta priorizar tareas y calendarizar procesos, estas herramientas te ayudarán a administrar tu sistema de forma eficiente. ¡Practica estos comandos para perfeccionar tus habilidades y tomar el control total de tus procesos! 🚀