Gestión de Procesos en Linux
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,24 KB
Definición y entorno
proceso: representación de la ejecución de un programa y su entorno de ejecución. Proceso demonio: proceso que se ejecuta permanentemente en el sistema. Los datos de identificación de un proceso incluyen:
- Un num de proceso único PID: num único que identifica el proceso, el primer proceso se llama systemd.
- Un num de proceso padre PPID: Cada proceso puede iniciar otros procesos, procesos hijos.
- Un num de usuario y uno de grupo: correspondiente a la cuenta de usuario que inicia el proceso.
- Duración y prioridad del proceso: tiempo de ejecución consumido desde la última invocación.
- Directorio de trabajo activo: al iniciarse el proceso, se configura el directorio actual del proceso.
- Ficheros abiertos: existe una tabla con los ficheros abiertos que al principio solo se encuentran tres representantes: 0,1,2, con cada apertura de proceso, la tabla se rellena).
Examinar las listas de los procesos
PS: Muestra el estado de los procesos. Estructura de ps:
- Nombre de usuario: Nombre de usuario que ejecuta el programa.
- ID del proceso: num identificado al proceso.
- TTY: Código que se usa para identificar un terminal.
- Tiempo de CPU: TIME: cant total de tiempo de CPU consumido. %CPU: representa el % de tiempo de CPU.
- Prioridad de la CPU: valor por defecto es 0.
- Uso de la memoria: RRS y %MEM.
- Comando: comando utilizado.
- Campo STAT: Indica el estado del proceso. Pueden ser: 1) R: Proceso en curso de ejecución. 2) T: Proceso parado. 3) D: Proceso dormido en espera de un recurso. 4) Z: proceso terminado, seguirá así hasta que su padre lo note y recupere el código de retorno.
Diferentes opciones de “ps”
Unix98: Se agrupan por guiones (-). Único carácter. BSD: Se agrupan y no van por guiones. Único carácter. GNU largas: Separados x dos guiones (--). Multi carácter.
Parámetros de PS
-f: Da + info. -e: Info de todos los recursos. -u: Devuelve una lista de 1 o varios usuarios. -G: los mismo pero para grupos. -t: para terminales. -p: para PID determinados. -l: información técnica.
Ejecución en segundo plano
El Shell es un proceso que crea un nuevo proceso para ejecutar cada comando insertado. Si no añadimos el & no podemos insertar un nuevo comando. sleep 10 &: indica el PID del proceso que se ejecuta en 2do plano. jobs: Muestra una información sobre los procesos en curso de ejecución asociados con la sesión actual. Además, proporciona los números de ID de las tareas. Asegura que todos los programas han finalizado antes de salir. Foreground: devuelve el proceso a primer plano en el terminal. Background: devuelve una tarea a un estado de ejecución pero en segundo plano.
Parada de un proceso / señales
3 formas de detener un proceso: 1. Ctrl + Z (SIGINT) 2. Ctrl + / (SIGQUIT) 3. Buscar el PID y ejecutar el comando “kill”. -s: Envía señal especificada al progreso. Las señales más usadas: 1 (SIGHUP) El padre manda un Hang Up a todos sus hijos cuando termina para que terminen ellos también. 2 (SIGINT) Interrupción del proceso pedido. 9 (SIGKILL) No se puede ignorar. 15 (SIGTERM) Pide al proceso terminar con normalidad STOP: suspende un proceso utilizando la señal.
CONT: Reactiva un proceso. HUP: Para y reinicia el proceso. Más comandos: nohup: Ejecuta un programa que sigue ejecutándose a pesar de que se cierre la sesión. killall: Destruye un proceso en base a su nombre en lugar de su PID. Procesos Zombis: Cuando un proceso hijo finaliza, manda una señal SIGCHLD a su proceso padre. Si el padre termina antes que los hijos, estos se convierten en procesos zombies y las señales SIGCHLD son enviadas a nadie.
Administrar las prioridades de los procesos
Comandos: nice: Inicia un programa con prioridad específica. renice: altera la prioridad de un programa en ejecución. Si omitimos el valor, nice utilizará 10 por defecto. El rango de valores posibles es de -20 a 19, donde los valores negativos tienen la prioridad más alta. incrementar la prioridad de todos los procesos de varios usuarios: renice –n -valor –u usuario1 usuario2. incrementar la prioridad de dos procesos concretos de dos usuarios: renice –n –valor –p pid proceso 1 pid proceso 2.
Top: variante de ps
nos hace saber cuanto tiempo de CPU consumen varios procesos. Ordena sus entradas x el uso de CPU. Comandos: -d retardo: especifica el retardo entre actualizaciones (5 segs). -p pid: monitorizamos procesos específicos. -n iter: Muestra un num concreto de actualizaciones. h y ?: muestra info ayuda. k: se puede destruir el proceso. q: esta opción sale de top. r: cambia la prioridad del proceso. s: cambia la velocidad de actualización de los datos mostrados. P: los datos se ordenan x el uso del CPU. m: los datos mostrados se ordenan x uso de memoria. uptime: averigua la carga media actual mediante el comando (ps [opciones]).