0% encontró este documento útil (0 votos)
17 vistas18 páginas

Manejo de Procesos en GNU/Linux

El capítulo 9 del módulo del Linux Profesional Institute se centra en el manejo de procesos en GNU/Linux, explicando su funcionamiento, ciclo de vida y comandos asociados para verificar y controlar su estado. Se abordan conceptos clave como procesos padres e hijos, así como comandos útiles como ps, kill, y nohup. Además, se discuten herramientas para monitorear procesos y la naturaleza de los demonios en el sistema operativo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas18 páginas

Manejo de Procesos en GNU/Linux

El capítulo 9 del módulo del Linux Profesional Institute se centra en el manejo de procesos en GNU/Linux, explicando su funcionamiento, ciclo de vida y comandos asociados para verificar y controlar su estado. Se abordan conceptos clave como procesos padres e hijos, así como comandos útiles como ps, kill, y nohup. Además, se discuten herramientas para monitorear procesos y la naturaleza de los demonios en el sistema operativo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Linux Profesional

Institute Módulo 1
CAPÍTULO 9
Tabla de contenido
Linux Profesional Institute Módulo 1 –Capítulo 9...........................................4

Presentación del curso ........................................................................4

Objetivos de aprendizaje ....................................................................4

Contenidos del curso ..........................................................................5

Página | 2
Página | 3
Linux Profesional Institute Módulo 1 –Capítulo 9

Presentación del capítulo


En el presente capítulo se procede a explicar el manejo de procesos en GNU/Linux así como
los distintos comandos que permiten verificar el estado de los mismos.

Objetivos de aprendizaje

Objetivo general:

 Comprender el funcionamiento de los procesos del sistema operativo en GNU/Linux.

Objetivos específicos:

 Definir el funcionamiento de un proceso en GNU/Linux.


 Definir el ciclo de vida de un proceso en GNU/Linux.
 Verificar los comandos para ver el estado de los procesos de GNU/Linux.

Página | 4
Contenidos del capítulo

Tema 1: Procesos en Linux

Unidad 9: Procesos en Linux

9.1. ¿Qué es un proceso?

9.2. Entorno de un proceso.

9.3. Arranque y Parada de un Proceso.

9.4. Procesos Padres e hijos.

9.5. Comando ps.

9.6. Comando pstree.

9.7. Control de Procesos.

9.8. Comando kill.

9.9. Comando killall.

9.10. El comando nohup.

9.11. Comando Jobs.

9.12. Comando bg (background).

9.13. Comando fg (foreground).

9.14. Manejando la prioridad de los Procesos.

9.15. Comando nice.

9.16. Comando renice.

9.17. Herramientas para manejar procesos.

9.18. Demonios.

Página | 5
9.1. ¿Qué es un proceso?

• Un programa es un archivo ejecutable.

• Un proceso puede ser definido como una instancia de un programa en ejecución


(corriendo). A los procesos también se los conoce como tareas.

• Cada proceso tiene su propio entorno.

9.2. Entorno de un proceso

Un proceso tiene:

• Nombre del programa dueño del proceso.

• Datos Internos.

• Archivos abiertos.

• Directorios Abiertos.

• Parámetros adicionales.

• ID de Usuario y Grupo de usuario.

• Id del Proceso (PID).

• Id del Proceso Padre (PPID).

• Variables.

Puede ver el PID del proceso shell que estás ejecutando con:

Figura 1. PID del proceso de la Shell en ejecución.

9.3. Arranque y Parada de un Proceso

Todos los procesos comienzan por otros procesos. Un ejemplo de la relación entre un
proceso padre e hijo.

Página | 6
Figura 2. Flujo de ciclo de vida de un proceso.

Un proceso puede terminar por dos causas:

 El proceso termina por sí mismo.

 El proceso termina por una señal enviada por otro proceso.

Como ejemplo vamos a tomar como se inicia el proceso de Login formando un entorno de
proceso.

Figura 2. Entorno de proceso.

Página | 7
9.4. Procesos Padres e hijos

[innovativa@innovativa ~]$ echo $$ 4280.

[innovativa@innovativa ~]$ bash.

[innovativa@innovativa ~]$ echo $$ 4580.

[innovativa@innovativa ~]$ date sáb oct 17 [Link] ECT 2015.

[innovativa@innovativa ~]$ exit exit.

[innovativa@innovativa ~]$ echo $$ 4280.

Tabla 1. Procesos padres e hijos.

Proceso PID PPID

-bash. 4280 3465


bash (hijo). 4580 4280

Date. 4567 4580

9.5. Comandos ps

El comando ps despliega la información y estatus de los procesos, este comando tiene un


sin número de opciones, los que típicamente se usan son –aux.

a Todos los procesos.

x Todos otros procesos.

u Más información.

Figura 3. Ejemplo de listado de procesos a través de comando ps

Página | 8
9.6. Comando pstree

Este comando muestra la jerarquía de los procesos.

Figura 4. Jerarquía de procesos.

9.7. Control de Procesos

Los procesos pueden ser controlados por dos vías:

• Desde el shell, usando del job number.

• Desde cualquier parte del sistema usando el PID.

Las siguientes acciones se pueden aplicar a un proceso que está corriendo.

• Terminar el proceso.

• Matar el proceso (Kill).

• Parar/Continuar.

• Envío de señales.

Se puede enviar señales a los procesos de tres maneras:

• Usando combinación de teclas (si el proceso está en foreground).

• Usando del comando kill.

• Usando el comando killall.


Página | 9
9.8. Comando kill

Esta orden la podemos usar de la siguiente forma:

kill -señal lista_pid_proceso.

Donde el valor de lista_pid_proceso tendremos que averiguarlos utilizando el comando ps.

En cuanto a señal puede ser bien su valor numérico o bien su valor simbólico, omitiendo el SIG

inicial, por ejemplo:

[root@yote ~]# kill -9 337.

o lo que sería lo mismo:

[root@yote ~]# kill -KILL 337.

Las señales más habituales son:

 SIGHUP (1) Colgar: Ciertos procesos utilizan la señal SIGHUP para indicar al proceso que
relea su fichero de configuración. Este es el caso, por ejemplo, de los procesos init e
inetd.

 SIGCONT (18) Continuar: Cuando un proceso detenido recibe esta señal continúa su
ejecución.

 SIGSTOP (19): Cuando un proceso en estado preparado recibe esta señal se detiene.

 SIGINT (2) Ctrl-C: Termina un proceso y desaparece.

 SIGTERM (15): Mata un proceso de forma controlada.

 SIGKILL (9): Esta señal mata un proceso incondicionalmente.

9.9. Comando killall

Este comando es ligeramente diferente a la orden kill por dos motivos:

 Utiliza el nombre de proceso en lugar del pid.

 Envía la señal a todos los procesos que tengan el mismo nombre.

Página | 10
killall -señal nombre_proceso.

Por lo demás, su comportamiento es idéntico, por lo que serían equivalentes:

kill -HUP 1.
killall -HUP init.

Al haber un único proceso con el nombre init y PID 1.

9.10. El comando nohup

Este permite descartar las señales de colgar. Por ejemplo:

Imagínate que se necesita realizar un monitoreo a su servidor, compilar un programa muy


grande, subir archivos al servidor, y este proceso necesita más de 2 horas o incluso más de
varios días.

¿Qué pasaría si necesita que los procesos se mantengan ejecutándose después de que
finalice sesión?

Cuando ejecuta sesión de intérprete de comandos, todos los procesos que ejecuta en la línea
de comandos son procesos hijos de dicho intérprete. Si cierra sesión o su sesión se cuelga o
acaba de inesperadamente de alguna otra manera, se enviarán señales SIGHUP (la señal
para colgar) a sus procesos hijos para terminarlos.

Esto se puede sortear diciéndole a los procesos que quiere mantenerlos vivos e ignorar las
señales SIGHUP, y así se ejecuta el comando especificado y lo mantiene ejecutándose incluso
si la sesión padre finaliza.

[root@yote ~]$ nohup find / -name README [1] 4653.

[root@yote ~]$ find / -name README & [1] 4653.

[root@yote ~]$ nohup: ignoring input and appending output to «[Link]».

Ctrl + z.

Permite suspender un proceso en ejecución.

[root@yote ~]# yum -y update (presionamos Ctrl + z).

El proceso de actualización del sistema queda suspendido.

Página | 11
9.11. Comando Jobs

Muestra todos los procesos que están corriendo en una terminal, tanto los que se están

ejecutando en segundo plano como los que están suspendidos.

[root@yote ~]# jobs.

9.12. Comando bg (background)

Los procesos que están en segundo plano suspendidos, los manda a ejecutar en segundo
plano.

[root@yote ~]# bg 1.

9.13. Comando fg (foreground)

De los procesos que están en segundo plano los manda a ejecutar en primer plano.

[root@yote ~]# fg 1.

Página | 12
9.14. Manejando la prioridad de los Procesos

En el siguiente gráfico, se explica la prioridad de los procesos dependiendo de quién los


ejecuta.

Figura 5. Prioridad en el manejo de procesos en GNU/Linux.

9.15. Comando nice

Permite comenzar un proceso con un usuario definiendo la prioridad.

Sintaxis:
nice [-n <valor>] <comando original>.

Ejemplo:

[root@yote ~]# nice -n 10 yum update.

Página | 13
9.16. Comando renice

Permite cambiar la prioridad de un proceso que se está ejecutando.

Sintaxis:
renice <new_priority> <PID>.

Ejemplo:

[root@yote ~]# renice 15 4895.

9.17. Herramientas para manejar procesos

Tenemos varias herramientas para monitorear y manejar procesos, por ejemplo:

 top: Muestra un informe en tiempo real de los procesos.

Figura 6. Resultado del comando top aplicado a la consola.

 htop: Muestra sin salir de la terminal (si es que lo ejecutamos desde ésta) algo similar a

top, pero donde mediante las teclas de función del teclado, accederemos a menús

de configuración al estilo de las aplicaciones DOS.

 kpm: permite ver y modificar los procesos de la computadora. Muestra información

detallada de los procesos que están corriendo, estado de los recursos de la

Página | 14
computadora como RAM (utilizada y libre), tamaño de la memoria de intercambio

(swap), utilización que los procesos hacen de la CPU y otra información.

Dependiendo de la distribución tendremos la herramienta.

9.18. Demonios

Es un tipo especial de proceso informático que se ejecuta en segundo plano en vez de ser
controlado directamente por el usuario (es un proceso no interactivo). Este tipo de programas
se ejecutan de forma continua (infinita), vale decir que, aunque se intente cerrar o matar el
proceso, este continuará en ejecución o se reiniciará automáticamente. Todo esto sin
intervención de terceros y sin dependencia de consola alguna.

Por ejemplo, el proceso que maneja la cola de impresión, este es infinito.

Figura 7. Demonios o servicios en GNU/Linux.

Página | 15
Palabras clave:

 Proceso.
 Padre.
 Hijo.
 Jobs.
 Background.
 Prioridad.
 Kill.
 Demonio.

Página | 16
Página | 17
Esta obra está bajo una licencia de Creative Commons
Reconocimiento-NoComercial-SinObraDerivada 3.0 Ecuador

Página | 18

También podría gustarte