Está en la página 1de 8

Conceptos Fundamentales sobre UNIX

Laboratorio 13.3.2 Administracin de los Procesos del Sistema


(Tiempo estimado: 50 min.)
Objetivos:
Comprender la administracin de procesos de UNIX
Repasar los conceptos de proceso del sistema
Repasar el comando ps y sus opciones
Listar los procesos en el shell actual
Listar todos los procesos que se estn ejecutando en el sistema
Buscar un proceso especfico por medio del nombre del comando
Identificar un proceso para terminarlo
Usar el comando kill para terminar un proceso.
Encontrar y terminar un proceso por su usuario
Terminar un proceso por medio del nombre del comando
Trasfondo:
En este laboratorio, usted trabajar con comandos de UNIX para identificar procesos del sistema y
controlarlos. El sistema operativo de red UNIX administra las tareas usando procesos. Los
procesos pueden ser iniciados por el sistema operativo o por los usuarios. La mayora de las tareas
que usted ejecuta en el entorno del UNIX inician un proceso. Un proceso puede iniciar o engendrar
un hijo o subproceso, creando as una jerarqua o rbol de procesos similar a la estru ctura del
sistema de archivos con relaciones padres/hijos. Usted trabajar con el comando ps (estado del
proceso) para supervisar los procesos del sistema y con el comando kill para terminar procesos
no deseados. Tambin trabajar con los comandos de Solaris pgrep (grep del proceso) y pkill
(acabar el proceso)
Herramientas / Preparacin:
a) Antes de iniciar este laboratorio, revise el Captulo 13, Seccin 1 Procesos de los
Sistemas UNIX, Seccin 2 Visualizacin de los Procesos y Seccin 3 Terminacin
de los Procesos.
b) Necesitar lo siguiente:
1. Una ID de login de usuario (por ej., user2) y contrasea asignadas por su instructor.
2. Una computadora que funcione con el sistema operativo UNIX.
3. Computadoras en red en el aula con un sistema de archivos de la clase instalado.
Notas:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________

18

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

Utilice el diagrama del rbol de directorios del sistema de Archivos de la Clase para que lo
asista en este laboratorio.

Estructura del rbol de Archivos de la Clase

Paso 1. Hacer login al CDE.


Haga login con el nombre de usuario y la contrasea que le fueron asignados por su instructor en
el recuadro de entradas del CDE.
Paso 2. Acceder a la Lnea de Comandos.
Haga clic con el botn derecho en el fondo del espacio de trabajo y haga clic sobre Tools
(Herramientas). Seleccione Terminal desde el men para abrir una ventana de terminal.
Paso 3. Repasar los conceptos de proceso del sistema.
Cada programa que usted ejecuta crea un proceso, al que se le asigna un nmero de identificacin
de proceso (PID) nico. El PID es utilizado por el sistema para identificar y rastrear al proceso
hasta que ste haya terminado. El kernel del sistema operativo (OS) administra el inicio y la
terminacin de todos los procesos. Cada proceso necesita recursos del sistema como tiempo de la
unidad central de proceso (CPU) y espacio de memoria de acceso aleatorio (RAM) para trabajar. El
OS asigna estos recursos del sistema a cada proceso cuando se inicia y los libera cuando el
proceso termina. Los primeros dos procesos que se inician cuando un sistema UNIX es arrancado
son el sched (calendario) e init (inicializacin), que administran a otros procesos. Hay diferentes
tipos de procesos en un sistema UNIX. Ellos estn resumidos abajo:

28

Daemon Los daemons son procesos iniciados por el kernel del UNIX y que existen
para un propsito especfico. Por ejemplo, el daemon lpsched existe con el slo
propsito de administrar trabajos de impresin.

Padre Un proceso que engendra a otro proceso se conoce como su padre. Un proceso
llamado daemon init es el primero que se invoca. Todos los procesos excepto init tienen
un proceso padre.

Hijo Un proceso que es engendrado por otro proceso se conoce como un proceso hijo.

Hurfano Un proceso cuyo proceso padre termina antes de que l pueda entregarle su
salida.

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

Zombie Un proceso hijo que no le entrega su salida al proceso padre. Este proceso
pasa a estar perdido en el sistema.

Utilizando la informacin de ms arriba, complete los espacios en blanco de las siguientes


oraciones.
a. A casi todo proceso que se inicia en un sistema UNIX el kernel le asigna un __________
__PID_____________________ nico que es usado para seguir al proceso
desde el inicio hasta el fin.
b. Cuando se inician nuevos procesos el kernel tambin asigna recursos del sistema como
__tiempo de la CPU___________ y ___RAM_______________
c. Un proceso que nunca entrega su salida al padre es llamado proceso ___ Zombie___
d. Un proceso que es engendrado por un proceso padre se llama proceso __Hijo____
e. Un proceso ___Padre____ es uno que engendra a otro proceso.
f. Un proceso del sistema UNIX que se ejecuta para proporcionar servicios es un:
______Daemon___________________
g. Si un proceso padre termina antes de que el hijo pueda acabar, genera un proceso
___Huerfano_______.
Paso 4. Repasar el comando ps y sus opciones.
El comando ps (estado del proceso) es usado para listar los procesos que se estn ejecutando
actualmente en el sistema. Esto se hacen normalmente si un proceso est tardando demasiado o
parece estar detenido, sealado por una ventana de terminal que no responde o que est
colgada. Al listar los procesos, usted puede ver el nombre del comando o programa que inici el
proceso ms cualquier proceso hijo que pueda haber engendrado. Al ejecutar el comando ps ms
de una vez, usted puede ver si un proceso aun se est ejecutando observando el tiempo del
proceso, que es la cantidad de tiempo de CPU que el proceso est utilizando. Si la cantidad de
tiempo no aumenta, entonces el proceso puede estar detenido. Usted puede usar el comando ps
para revisar la ID del proceso (PID) y luego matar el proceso si est tardando demasiado o se ha
detenido.
La salida del comando ps mostrar el nmero de PID y el comando o programa asociado con l. El
nmero de PID se utiliza normalmente para terminar un proceso. Hay tres opciones principales
para el comando ps como se muestra en la tabla:
Formato del Comando:

Opcin de ps
ps
ps

-e

ps

-f

ps

-u

38

id-usuario

ps

[-opciones]

Opciones del Comando ps


Significado
Funcin o Propsito
Sin opciones
Muestra informacin sobre los procesos del usuario
actual en el shell o ventana de terminal actual.
Todos
Muestra informacin sobre todos los procesos en el
sistema.
Completa
Genera un listado completo con toda la informacin
disponible sobre cada proceso.
Usuario
Muestra todos los procesos de un usuario en
particular.

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

El comando ps bsico muestra la informacin sobre los procesos que slo estn en su shell actual.
Usted ver procesos que han sido iniciados con esta ventana de terminal.
PID
785
742
689

TTY
pts/6
pts/6
pts/6

TIME
0:45
0:00
0:00

CMD
dbprog
csh
/bin/ksh

a. Desde su ventana de terminal actual, practique a usar el comando ps con cada una de
las opciones mostradas.
El comando ps -ef muestra toda la informacin sobre todos los procesos que se estn
ejecutando en el sistema.
UID
root

PID
0

PPID
0

C
80

STIME
16:46:41

TTY
?

TIME
0:01

CMD
sched

La siguiente tabla define los Encabezados de Columna del comando ps -ef


Encabezados de Columna de ps -ef
Valor

Descripcin

UID

La ID del usuario que inici el proceso.

PID

El nmero de identificacin del proceso. El PID se


utiliza para acabar un proceso.

PPID

El nmero de identificacin del proceso padre del


proceso.

La prioridad del proceso.

STIME

Hora de inicio para el proceso

TTY

Tipo de terminal la terminal controladora para el


proceso.

TIME

La cantidad de tiempo de CPU usado por el proceso.

CMD

El nombre del comando o daemon (nombre del


programa ejecutado)

Paso 5. Hacer una lista de los procesos en el shell actual.


a. En su ventana de terminal actual ejecute el comando ps sin opciones. Qu informacin
se muestra? __Muestra los procesos en el Shell actual___________________________
b. Cuntos procesos fueron mostrados? __bash ps__________
c. Cul es la ID del proceso (PID)? __2446, 2533_______
d. Cul fue el comando (CMD) que inici el proceso? __ps__
Paso 6. Hacer una lista de todos los procesos que se estn ejecutando en el sistema.
El comando ps -ef listar todos los procesos y puede producir un listado bastante largo.
a. En su ventana de terminal actual ejecute el comando ps -ef. Qu encabezados se
muestran? (Consejo: Usted puede filtrar la salida del comando ps -ef con el comando
more para ver los encabezados.) __UID PID c STIME TTY TIME CMD___________

48

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

b. Cuntos procesos fueron mostrados? _216_


c. Cuente la cantidad de procesos ejecutando nuevamente el comando ps -ef y luego
filtre la salida con el comando wc (recuento de palabras). El primer nmero es la cantidad
de lneas mostradas, que tambin es la cantidad de procesos. Qu comando utiliz?
____ps ef|wc -l_____ Cuntos procesos estaban ejecutndose? _216_____
d. Muestre la salida de todos los procesos del sistema ordenados por nmero PID y vea
una pgina por vez. Qu comando utiliz? ____ps ef|more______
e. Cul es el comando que tiene nmero de ID del proceso 1? __sbin/init____
Paso 7. Buscar un proceso especfico por el nombre de comando.
Para detener un proceso usted debe primero encontrar la ID de Proceso. En la mayora de los
sistemas hay cientos de procesos ejecutndose y el listado del ps -ef puede ser bastante largo.
Si usted conoce el nombre del programa ejecutable que inici el proceso, entonces puede
encontrar el PID ms rpido. Al filtrar la salida del comando ps con grep, usted puede buscar el
proceso especfico que desea terminar y puede determinar el PID correcto. Como recordar, el
comando grep puede buscar cualquier tipo de cadena de caracteres en la salida de otro comando.
Especfico de Solaris, el comando pgrep (grep del proceso) se utiliza para buscar un proceso
especfico. La opcin l (salida larga) mostrar los nombres de los procesos asociados con el PID
encontrado. La opcin e muestra el PID y el nombre del comando iniciador, lo que permite que
grep busque en esta informacin.
a. En su ventana de terminal actual ejecute el comando ps -e | grep lp para buscar
todos los procesos que estn relacionados con el daemon de calendario de la impresora
en lnea.
b. Cuntos procesos fueron mostrados? __2_______
c. Cul es el nmero de ID ms bajo de todos los procesos mostrados? __ 11__________
d. En su ventana de terminal actual ejecute el comando pgrep l lp para buscar todos
los procesos que estn relacionados con el daemon de calendario de la impresora en
lnea. Cul es la diferencia en la salida entre ps y pgrep? _ps es mas detallado________
Paso 8. Identificar un proceso para terminarlo.
El comando ps ef muestra un listado completo de todos los procesos, incluyendo la ID de
Proceso (PID) y su ID de Proceso Padre (PPID). Cuando intenta terminar un programa o liberar
una ventana de terminal colgada, puede no ser suficiente el acabar con la ID de proceso que est
asociada con la aplicacin que no responde. Puede ser necesario acabar con el Padre de ese
proceso y en raras ocasiones incluso se debe acabar con el Padre del Padre. Es importante poder
observar el PID y el PPID para poder rastrear la jerarqua desde el proceso hijo hasta el proceso
padre que lo engendr.
Para hacer esto, usted primero debe identificar el PID del proceso de ms bajo nivel que no
responde. Normalmente intentar acabar con esos PID de procesos. Si eso no detiene al proceso,
puede necesitar acabar con su padre. Si acaba con un proceso padre acaba tambin con todos los
procesos hijos que engendr. Es mucho ms rpido acabar con un proceso padre que acabar
quizs con varios procesos hijo.
a. Desde la ventana de terminal actual en el CDE, ingrese el comando ps.

58

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

b. Cuntos procesos estn corriendo? Por qu hay tan pocos procesos?


_____2, porque son los que se acaban de ejecutar por el usuario____________________
c. Cul es el nombre del proceso que se est ejecutando y qu representa?
____bash, y sirve para ejecutar scripts__________________________________
d. Cul es la ID de Proceso (PID) de este proceso? ___2446_________
e. Ingrese el comando csh para abrir una sesin de Shell C bajo el Shell Korn Cmo se
ve ahora su prompt? ___%______________________
f. Ingrese el comando para mostrar informacin completa sobre los procesos que se estn
ejecutando en el shell actual. Qu comando utiliz? ___ps____________
Qu procesos se estn ejecutando ahora? _bash.ps.csh____________________
g. La ID de Proceso del Shell Korn (/bin/ksh) es la ID de Proceso Padre (PPID) del Shell
C (csh)? ____si___
h. Ingrese el comando sleep 1000 & para crear un proceso que suspenda la ejecucin
por 1000 segundos (aproximadamente 15 min.) Cul es el nombre del proceso que se
est ejecutando y qu representa? El ampersand (&) hace que el comando se ejecute en
background y vuelve al prompt del shell para que usted pueda continuar trabajando.
i. Ingrese el comando ps f otra vez. La ID de Proceso del Shell C (csh) es la ID de
Proceso Padre (PPID) del comando sleep? _3210__ Cul ID de proceso es el hijo
del Shell C? ____3189______________________________________________
j. Salga del shell C y escriba el comando ps f otra vez. Qu ID de proceso (PID) es el
padre del comando sleep? __1946___ Qu tipo de proceso es ahora el proceso
sleep? __huerfano________
Paso 9. Usar el comando kill para terminar un proceso.
Las seales son usadas para terminar, suspender y continuar procesos. A veces se puede usar
Ctrl-c para terminar un proceso que no est respondiendo. Esto enva una seal de interrupcin
(INT) al proceso, terminndolo a l y a cualquier proceso hijo que pudiera haber engendrado.
El comando kill proporciona una forma directa de terminar procesos de comandos no deseados.
Es til cuando usted quiere detener un comando que tarda mucho tiempo en ejecutarse, o cuando
necesita terminar un proceso del que no puede salir en la forma normal. El especificar sus id de
proceso normalmente acaba con los procesos
Formato del Comando:

kill [-seal] id-proceso

Para terminar un proceso con el comando kill, primero debe escribir ps para encontrar el PID del
proceso y luego escribe kill seguido del PID. Si usa el comando kill sin especificar una seal,
se enva la seal 15 (SIGTERM) al proceso con el nmero de PID especificado. Esto recibe el
nombre de acabado suave y normalmente causa que el proceso termine. Es mejor acabar en
forma suave con un proceso, si es posible, ya que cierra los archivos en forma apropiad a y termina
el proceso con dignidad.
Si usted necesita terminar a la fuerza con un proceso, puede usar la opcin 9 con el comando
kill. Esta opcin recibe el nombre de acabado seguro y es necesaria para acabar shells que no
responden a ninguna otra seal de terminacin.

68

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

Formato del Comando:

kill 9 id-proceso

Nota: Para procesos que no son shells, use el comando kill -9 (SIGKILL) como un
ltimo recurso porque es un mtodo abrupto y no permite la terminacin apropiada del
proceso.
a. Ingrese el comando para mostrar informacin completa sobre los procesos que se estn
ejecutando en el shell actual. Qu comando utiliz? ________ ps___________ Qu
procesos se estn ejecutando ahora? ____bash,ps,sleep_______________________
b. Como el proceso sleep es ahora un hurfano y ha sido adoptado por el proceso init (PID
#1), ingrese el comando para realizar un acabado suave con el PID para sleep. Si sleep ha
terminado (pasaron ms de 15 minutos) repita los pasos 7h a 7j otra vez y luego acabe en
forma suave con el programa sleep. Ingrese el comando ps f otra vez. Qu procesos
se estn ejecutando ahora? ___bash, ps_________________
c. Ingrese el comando csh para abrir otra sesin de Shell C bajo el Shell Korn.
d. Ingrese el comando para mostrar informacin completa sobre los procesos que se estn
ejecutando en el shell. Qu procesos se estn ejecutando ahora? __bash,ps,-sh
e. La ID de Proceso (PID) del Shell Korn (/bin/ksh) es la ID de Proceso Padre (PPID) del
Shell C (csh)? ___no____
f. Ingrese el comando sleep 1000 & otra vez
g. Ingrese el comando ps -f otra vez. La ID de Proceso del Shell C (csh) es la ID de
Proceso Padre (PPID) del comando sleep? _si____
h. Utilice el comando de acabado suave para acabar con la ID de proceso (PID) del shell
C. Utilice ps -f otra vez para averiguar si acab con el shell. Acab? ___ no______
Por qu s o por qu no? _porque est siendo utilizado________________
i. Utilice el comando de acabado seguro para acabar con el PID del Shell C. Cul fue la
respuesta del comando kill? __killed________
Paso 10. Que el usuario encuentre y termine un proceso.
El comando ps puede utilizarse con la opcin u (usuario) para encontrar procesos suyos o de otro
usuario especfico. Este comando es usado ms a menudo que el ps-ef porque usted
normalmente administra los procesos que le pertenecen slo a usted. Puede encontrar procesos
de otros usuarios por medio de su nombre de login o nmero UID. Un usuario slo puede terminar
con sus procesos, pero el superusuario puede terminar con cualquier proceso que se ejecute en el
sistema.
Formato del Comando:

ps -u ID-login o UID

a. Inicie las aplicaciones del Reloj (OW Clock), la Calculadora y el Calendario.


b. Utilice el comando ps con la opcin u para encontrar todos los procesos que se estn
ejecutando por su ID de login (p.e.: userX) o por su UID numrico (p.e. 1004). Cul es la
ID de proceso para la aplicacin Reloj? __3233__________________
c. Utilice un acabado suave para terminar la aplicacin Reloj. El reloj aun est abierto y
funcionando en su escritorio? __no____

78

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.

d. Utilice el comando ps u combinado con grep para encontrar el nmero de PID de la


aplicacin Calculadora en lugar de usar ps u y buscar en la lista completa. Qu
comando utiliz? Sugerencia: piense cules pueden ser las letras que componen el
nombre de comando de la aplicacin Calculadora y use grep con ellas. Ps u|grep 3215___
e. Termine la aplicacin Calculadora. Aun est abierta y funcionando en su escritorio?
___no______
f. Encuentre el nmero de PID para la aplicacin Calendario y luego termnela. Cul es el
nombre de comando para el Calendario? ___cal_________ Sugerencia: a
veces el nombre del programa a buscar o filtrar con grep no es intuitivo. En este caso, la
aplicacin Calendario era uno de los ltimos procesos que fueron iniciados y por eso tiene
un nmero de PID mayor.
Paso 11. Terminar un proceso por medio del nombre de comando.
El comando kill es especfico para Solaris y funciona exactamente igual que el comando pgrep,
excepto que termina el proceso buscando el nombre de comando de proceso o procesos (CMD) y
enviando una seal de acabado.
Formato del Comando:

pkill nombre CMD

a. Inicie un programa Shell C (csh) y ejecute el comando sleep 500 & en una ventana de
terminal.
b. Utilice el comando pkill para terminar el proceso sleep por su nombre de comando.
Utilice el comando ps f otra vez. Est acabado? ____no________
c. Salga del Shell C.
Paso 11. Borrar los archivos y directorios creados en este laboratorio.
Borre todos los archivos y directorios creados en su directorio home durante este laboratorio.
Paso 12. Cerrar el administrador de archivos CDE y hacer logout.
Haga doble clic en el botn de raya que se encuentra en el extremo superior izquierdo de la
pantalla, luego haga clic en el cono EXIT (SALIDA) del panel frontal.

88

Conceptos Fundamentales sobre UNIX 2.0-Laboratorio 13.3.2

Copyright 2002, Cisco Systems, Inc.