Procesos en Unix/Linux: gestión, señales, monitorización y prioridades
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 6,35 KB
Procesos en Unix/Linux: conceptos y comandos principales
1. Concepto de proceso
Proceso: representación de la ejecución de un programa y del entorno de ejecución del mismo.
Proceso demonio: proceso que se ejecuta permanentemente en el sistema.
2. Datos de identificación de un proceso
Process ID (PID): número que identifica el proceso.
Parent Process ID (PPID): cada proceso puede iniciar otros procesos (procesos hijos); deben tener el PID del proceso padre, excepto el 0.
Duración y prioridad del proceso: tiempo de ejecución consumido desde la última invocación y su prioridad asociada.
Directorio de trabajo activo: configura el directorio actual del proceso.
3. Comando ps
El comando ps muestra el estado de los procesos en curso que el usuario ha iniciado. A continuación se detallan opciones y comportamientos comunes:
- -f: muestra información completa (formato extendido).
- -e: muestra información de todos los procesos en curso.
- -u: muestra la lista de procesos de uno o varios usuarios (separados por comas).
- -G: muestra la lista de procesos de uno o varios grupos.
- -t: muestra la lista de procesos asociados a una o varias terminales.
- -p: muestra una lista de uno o varios PID determinados.
- -l: ofrece información técnica (formato largo).
Estilos de agrupación de opciones:
- Unix98: opciones de un carácter que pueden agruparse y suelen ir precedidas de un guion (-).
- BSD: opciones de un carácter que pueden agruparse y no van precedidas de guion.
Campos habituales que muestra ps: name, id proceso (PID), TTY, tiempo CPU, prioridad CPU, uso memoria, comando.
4. Campo STAT y tipos de procesos
El campo STAT indica el estado del proceso. Se interpreta por caracteres. Entre los más importantes:
Primer carácter (estado)
- R: proceso en ejecución.
- T: proceso parado; podría ser reiniciado.
- S: proceso dormido (sleep), en ejecución pero sin actividad en este momento.
- D: proceso dormido en espera de un recurso (estado de espera ininterrumpible).
- Z: proceso zombi; ha terminado pero sigue existiendo hasta que su padre lo recoja.
Segundo carácter (atributos adicionales)
- <: alta prioridad (realtime).
- N: baja prioridad (nice mayor).
- L: tiene páginas bloqueadas en memoria (locked pages).
- -s: líder de sesión.
- -l: multi-threaded.
- +: pertenece al grupo de procesos de primer plano.
5. Shell y gestión de tareas
Shell: el símbolo & se utiliza para ejecutar procesos en segundo plano.
jobs: muestra la información mínima de los procesos (tareas) que el usuario ha puesto desde la shell.
6. Señales y comandos de terminación
kill: con el PID de un proceso podemos enviar señales para que el proceso se detenga o reaccione.
- -l: proporciona la lista de las señales que podemos utilizar con su número correspondiente.
- -s <Nº|nombre>: manda la señal indicada por número o por nombre. Por ejemplo, -s 9 o -s KILL (se puede usar el nombre sin anteponer SIG).
killall: funciona con el nombre del proceso en vez de con el PID, por lo que puede terminar todos los procesos con el nombre indicado.
- killall -i <nombre>: pide confirmación antes de matar cada proceso.
7. Prioridades de procesos
nice: crea un proceso con la prioridad que se le indique (valor de niceness).
renice: modifica la prioridad de procesos ya existentes, si aún no han terminado y si el permiso lo permite. Para cambiar prioridades de varios grupos o usuarios pueden especificarse más de un ID; en algunos casos solo funciona como root.
Ejemplo de comprobación: ps -al muestra información ampliada, incluido el campo NI (nice) que indica la prioridad que se estableció.
8. Monitorización con top
top muestra procesos ordenados por cuánto tiempo de CPU consumen y se actualiza periódicamente.
- -d <segundos>: especifica el retardo entre actualizaciones (por defecto suele ser 5 s).
- -p <PID>: monitoriza procesos específicos.
- -n <N>: muestra un número concreto de actualizaciones y luego sale.
Teclas y acciones dentro de top:
- h o ?: muestra ayuda.
- k: destruye un proceso (pide PID y señal).
- q: sale del comando top.
- r: cambia la prioridad de un proceso (renice interactivo).
- s: cambia la velocidad de actualización del top.
- P: ordena los datos por uso de CPU.
- M: ordena los datos por uso de memoria.
9. Comando uptime
uptime: muestra la carga media del sistema junto con el tiempo que lleva el equipo en ejecución.
Notas finales
Los conceptos, flags y estados anteriores son útiles para gestionar y monitorizar procesos en sistemas Unix/Linux. Mantén presente la distinción entre estilos de opciones (Unix98 vs BSD) y usa las herramientas adecuadas según la necesidad (inspección con ps, control con kill/killall, y monitorización en tiempo real con top).