Gestión y Control de Procesos en Sistemas Linux: Conceptos y Comandos

Clasificado en Informática

Escrito el en con un tamaño de 4,27 KB

Definición y Entorno de Procesos

Un proceso es la representación de la ejecución de un programa y su entorno. Un proceso demonio es aquel que se ejecuta permanentemente en el sistema.

Los datos de identificación de un proceso incluyen:

  • PID (Process ID): Número único que identifica el proceso. El primer proceso se llama systemd.
  • PPID (Parent Process ID): Identificador del proceso padre que inició al proceso hijo.
  • ID de usuario y grupo: Identificadores de la cuenta que inició el proceso.
  • Duración y prioridad: Tiempo de ejecución consumido desde la última invocación.
  • Directorio de trabajo activo: Directorio configurado al iniciar el proceso.
  • Ficheros abiertos: Tabla de descriptores de archivos (inicialmente 0, 1 y 2).

Examinar las Listas de Procesos con PS

El comando ps muestra el estado de los procesos. Su estructura incluye: nombre de usuario, ID del proceso, TTY, tiempo de CPU, prioridad y uso de memoria.

Campo STAT (Estado del proceso)

  • R: En curso de ejecución.
  • T: Parado.
  • D: Dormido en espera de un recurso.
  • Z: Proceso terminado (zombie), a la espera de que su padre recoja el código de retorno.
  • <: Alta prioridad.
  • N: Baja prioridad.
  • L: Páginas bloqueadas en memoria.
  • s: Líder de sesión.
  • l: Multi-threaded.

Opciones y Parámetros de PS

  • Unix98: Agrupados por guiones (-).
  • BSD: Sin guiones.
  • GNU largas: Separados por dos guiones (--).

Parámetros comunes: -f (más información), -e (todos los recursos), -u (usuarios), -G (grupos), -t (terminales), -p (PIDs específicos), -l (información técnica).

Ejecución en Segundo Plano y Gestión de Trabajos

Para ejecutar un proceso en segundo plano, se añade el símbolo & al final del comando (ej. sleep 10 &).

  • jobs: Muestra información sobre los procesos en curso asociados a la sesión actual.

Parada de Procesos y Señales

Existen tres formas principales de detener un proceso:

  1. Ctrl + Z: (SIGINT)
  2. Ctrl + /: (SIGQUIT)
  3. kill: Comando para enviar señales al PID.

Señales más utilizadas

  • 1 (SIGHUP): El padre envía una señal de cierre a sus hijos.
  • 2 (SIGINT): Interrupción solicitada.
  • 9 (SIGKILL): Terminación forzosa (no se puede ignorar).
  • 15 (SIGTERM): Terminación normal.

Otros comandos útiles: nohup (mantiene el proceso al cerrar sesión) y killall (destruye procesos por nombre).

Procesos Zombis

Cuando un proceso hijo finaliza, envía una señal SIGCHLD al padre. Si el padre termina antes que los hijos, estos se convierten en procesos zombis al no tener quién recoja su señal.

Administración de Prioridades

  • nice: Inicia un programa con una prioridad específica.
  • renice: Altera la prioridad de un programa ya en ejecución.

Monitorización con Top

Top es una variante de ps que ordena los procesos según el uso de CPU en tiempo real.

Comandos interactivos en Top:

  • -d: Retardo entre actualizaciones.
  • -p: Monitorizar PIDs específicos.
  • k: Destruir proceso.
  • r: Cambiar prioridad.
  • P: Ordenar por uso de CPU.
  • m: Ordenar por uso de memoria.
  • q: Salir.

El comando uptime permite conocer la carga media del sistema.

Entradas relacionadas: