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:
- Ctrl + Z: (SIGINT)
- Ctrl + /: (SIGQUIT)
- 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.