You are on page 1of 15

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
Sistemas Operativos S6K

TRABAJO INDIVIDUAL
Profesor: Msc. Christopher Crespo León
Alumna: Gualli Pintag Ruth
Objetivo:

 Diferenciar el uso de:
o BG(Segundo Plano)
o FG (reanuda trabajos suspendidos) ,
o CTR+Z (Pausar ejecución),
o nohup ejecutable (comando nohup ejecuta procesos en
segundo pero no libera la terminal). - nohup genera un archivo
de log llamado nohup.out-
o nohup ejecutable & (Ejecuta el proceso en background y libera
la terminal para seguir trabajando en ella). - nohup genera un
archivo de log llamado nohup.out-
 Revisar el proceso en ejecución con el comando top
 Usar el comando ps –eadf | grep -i “nombre programa”
 Obtener el PPID y PID del proceso en ejecución
 Conocer el concepto de servicio y de demonio.

Dinámica: Ejecutara los comandos y se responderá las preguntas.
Plazo y forma de evaluación:
El trabajo debe ser realizado de manera individual. El trabajo vale 3 puntos?
1) Tema 1 (1 punto) Usando el comando BG(Segundo Plano) y CTRL +
Z.
o Escenario 1
 Abrir el terminal de Linux
 Ejecutar gedit

 Editar el archivo: Escribir dentro de el: Clase de procesos

en este caso si le colocamos bg pasara a segundo plano y se podrá modificar el archivo. . o Al cerrar la terminal se cierra el aplicativo gedit? SI/NO? Si una vez que cerramos el terminal en el cual estamos ejecutando el comando se cierra automáticamente el gedit. En el terminal ejecutar CTRL+Z  Realizar lo que se pide y contestar las preguntas: o Se puede ejecutar ls –l en la terminal donde se lanzó el comando? Si se puede ejecutar el comando o Se puede modificar el archivo de texto? No se puede modificar el archivo ya que se encuentra en estado parado por lo cual no puede ejecutarse hasta que un evento externo sea llevado a cabo. o Ejecutar el comando jobs en la línea de comandos. Enviar el printscreen de la pantalla de soporte.

o Escenario 2  Abrir el terminal de Linux  Ejecutar gedit  Editar el archivo: Escribir dentro de el: Clase de procesos  En el terminal ejecutar CTRL+Z  Al liberarse la terminal escribir el comando bg  En la misma terminal ejecutar Firefox  En el terminal ejecutar CTRL+Z  Al liberarse la terminal escribir el comando bg .

En qué estado aparecen los procesos en ejecución. . Al liberarse escribir el comando sleep 6000  En el terminal ejecutar CTRL+Z  Realizar lo que se pide y contestar las preguntas: (1) Al ejecutar el comando Jobs.

 Gedit se encuentra en estado running quiere decir que está ejecutando  Firefox está en estado running o ejecutando  Sleep 6000 se encuentra en stopped es decir está parado (2) Consultar los procesos en ejecución con el comando: (a) ps -eadf | grep -E "gedit|firefox|sleep" | grep -v "grep" (b) Enviar el printscreeen. (3) En otra terminal ejecutar: ps -eadf | grep -E "gedit|firefox|sleep" | grep -v "grep" .

estos dos procesos se encuentran corriendo (4) Cerrar el terminal donde se ejecutaron los comandos e indicar que paso con los procesos en ejecución: . (a) Obtener el PID Y el PPID de los tres procesos en ejecución? Proceso gedit PID = 2807 PPID= 2797 Proceso Firefox PID= 2819 PPID= 2797 Proceso Sleep 6000 PID= 2877 PPID= 2797 (b) Indicar que procesos se ven corriendo? Se encuentran corriendo gedit y Firefox.

2) Tema 2 (1 punto) Uso del comando nohup y nohup & o Escenario 1  Abrir un terminal y ejecutar nohup sleep 10000  Abrir otro terminal y ejecutar ps -eadf | grep -i " sleep" | grep -v "grep" obtener los PID y los PPID de los procesos en ejecución. Los procesos en ejecución siguieron abiertos no se cerraron. PID = 12022 PPID = 19009  Responder las siguientes preguntas: . solo se cerró la terminal que cerramos. A que se refiere el &? Se refiere a que el proceso ha quedado liberado por lo cual el programa se ejecuta en segundo plano (background) y podemos seguir llamando a más programas. (a) Ejecutar nuevamente en la otra terminal que quedo abierta el comando: ps -eadf | grep -E "gedit|firefox|sleep" | grep -v "grep" (b)Los PID Y los PPID de los procesos son los mismos que se capturaron arriba? No son los mismos estos cambiaron Proceso gedit PID = 3563 PPID= 3036 Proceso Firefox PID= 11234 PPID= 3036 Proceso Sleep 6000 PID= 12236 PPID= 3036 (c) Que paso con el gedit? Gedit sigue corriendo este proceso cambio el PID y el PPID (d)Que paso con el Firefox Firefox sigue abierto y cambio el PID y PPID (e)Que paso con el Sleep 6000? Este proceso se encuentra en estado alto o stopped cambio su PID y PPID (5)El ejecutar bg notaran que se muestra el nombre del proceso y un & al final.

la respuesta enviada por el terminal es nula es decir no pasa nada. ejecutar el comando: ps -eadf | grep -i " sleep" | grep -v "grep" nuevamente. El proceso sleep se encuentra ahí? tiene el PID y el PPID que se obtuvo en la ejecución anterior? Al ejecutar el comando propuesto se puede ver como el proceso se encuentra nuevamente ay. El PID o proceso hijo es el mismo que obtuvo en la ejecución anterior 19022 El PPID o proceso padre cambio en la ejecución realizada ya que en la ejecución anterior el PPID fue 19009. Que sucede con el comando sleep? El comando sleep al parecer deja de ejecutarse no se puede encontrar dicho proceso al ejecutar la consulta Jobs para ver si el proceso se encuentra en algún estado. mientras que en la última ejecución del comando cambio a 1367 o Escenario 2  Abrir una terminal ejecutar: nohup sleep 10000  Luego CTRL + Z  Ejecutar nohup sleep 9000 &  Ejecutar nohup sleep 8000 &  Ejecutar nohup sleep 7000 &  Abrir otro terminal y ejecutar: ps -eadf | grep -i " sleep" | grep -v "grep".  Se pueden ejecutar más comandos en la ventana donde se ejecutó el sleep o se quedó tomada la ventana? No se puede ejecutar ningún comando se quedó la ventana tomada  Si se cierra la ventana donde se ejecutó el sleep.  En la otra terminal que no se cerró. obtener los PID y los PPID de los procesos en ejecución .

Indicar en qué estado se encuentran los procesos? Los procesos se encuentran de la siguiente manera: Nohup sleep 10000 Parado o stopped Nohup sleep 9000 Ejecutándose o running . Al ejecutar nuevamente el comando propuesto los PID Y PPD son los mismos que la primera ejecución. obtener los PID y los PPID de los procesos en ejecución. Sleep 10000 PID =19022 PPID = 1367 Sleep 10000 PID =19142 PPID = 19131 Sleep 9000 PID =19146 PPID = 19131 Sleep 8000 PID =19149 PPID = 19131 Sleep 7000 PID =19150 PPID = 19131  Sobre la misma terminal ejecutar: ps -eadf | grep -i " sleep" | grep -v "grep". Sleep 10000 PID =19022 PPID = 1367 Sleep 10000 PID =19142 PPID = 19131 Sleep 9000 PID =19146 PPID = 19131 Sleep 8000 PID =19149 PPID = 19131 Sleep 7000 PID =19150 PPID = 19131  En la terminal donde se ejecutó los comandos ejecutar el comando jobs.

Estos son los mismos que PID y PPID que se obtuvieron en la ejecución anterior? Los PID siguen siendo los mismos que en la ejecución anterior. Los sleeps siguen en ejecución? Si los sleeps siguen en ejecución ya que como vemos en parte de abajo al consultar en la terminal que quedo abierta con el comando ps-eadf… aparecen todavía dichos procesos. los procesos liberan la terminal y se envían a segundo plano  Los dos procesos se enviaron a segundo plano y liberaron la terminal.50 puntos) Uso del comando fg . Responda SI o NO? Si  Al cerrar la ventana donde se ejecutaron los comandos. obtener los PID y los PPID de los procesos en ejecución. 3) Tema 3 (0.  En el otro terminal que no cerro ejecutar: ps -eadf | grep -i " sleep" | grep -v "grep". PID =19142 PPID = 1367 Sleep 9000 PID =19146 PPID = 1367 Sleep 8000 PID =19149 PPID = 1367 Sleep 7000 PID =19150 PPID = 1367  Es decir lo mismos procesos se siguen ejecutando? SI  Ejecutar el comando pidof sleep. Que me retorna este comando? Este comando retorna el PID de los sleep en forma descendente de abajo para arriba es decir se muestra primero el ultimo sleep y así sucesivamente. pero los PPID o proceso padre cambiaron a 1367 excepto la primera Sleep 10000 PID =19022 PPID = 1367 Sleep 10000. Nohup sleep 8000 Ejecutándose o running Nohup sleep 7000 Ejecutándose o running  Responder las siguientes preguntas:  Es lo mismo Responda SI o NO? o Haber ejecutado esto?:  nohup sleep 10000  CTRL + Z  Bg o Que esto?: nohup sleep 9000 & Si es lo mismo ya que al realizar cualquiera de las dos formas.

Adjuntar el print de pantalla.  Ejecutar echo $!  Ejecutar echo $$  Ejecutar nohup sleep 4000 & o Al ejecutar indica [2] 5014 ( El 5014 lo genera el sistema)  Ejecutar echo $!  Ejecutar echo $$  Ejecutar nohup sleep 5000 & o Al ejecutar indica [3] 5015 ( El 5015 lo genera el sistema)  Ejecutar echo $!  Ejecutar echo $$  Ejecutar el comando jobs y obtener los estados de los procesos en ejecución. . Abrir una terminal y ejecutar:  Ejecutar nohup sleep 3000 & o Al ejecutar indica [1] 4986 (El 4986 lo genera el sistema) Al ejecutar el comando indicado se puede visualizar un numeros generado aparentemente por el sistema de forma automática al ejecutar el comando nohup sleep 3000 &.

 En otra terminal ps -eadf | grep -i " sleep" | grep -v "grep". fg permite devolver el proceso a primer plano en este caso devolvió el sleep 4000 ya que digitamos el 2 que es el segundo proceso que queremos traer a primer plano.  Cerrar la ventana donde se ejecutaron los procesos sleep.  En la ventana donde se ejecutaron los comandos ejecutar fg 2  Responder las siguientes preguntas:  Cada vez que se ejecuta nohup sleep XXXX &? A que hace referencia los números [1] 4986 ? Hace referencia al PID del proceso que estamos ejecutando en ese momento. Que paso con el proceso nohup sleep 4000 & ? . ejecutar fg 2 que proceso trajo a primer plano? El proceso sleep 4000. Obtener los PID y los PPID de los procesos en ejecución. Y Ejecutar en la otra ps -eadf | grep -i " sleep" | grep -v "grep". El “&” al final de un comando quiere decir que se ejecutara en segundo plano. Ejecutar el comando : ps -eadf | grep -i " sleep" | grep -v "grep". Que me retorna este comando? Retorna el PID de cada uno de los procesos de manera ascendente de forma horizontal. . obtener los PID y los PPID de los procesos en ejecución. los otros sleeps tienen los mismos PID y PPID?  Ejecutar el comando pidof sleep.  En el terminal en donde se ejecutó el proceso.

Este tipo de programas continua en el sistema. servicio () o programa residente (nomenclatura usada en MS-DOS) es un tipo especial de proceso informático no interactivo. Si es lo mismo ya que ambos cumplan la misma función ejecutarse en segundo plano la única diferencia es el nombre ya que en Windows se lo denomina servicio y en Linux demonio. este comando permite monitorear en tiempo real del estado de los procesos. el componente responsable de la gestión de servicios de Microsoft Windows. o En que me ayuda ejecutar procesos en segundo plano? . Se pueden obtener los PID de los comandos ejecutados? SI o NO Si.  El comando echo $$ siempre me retorno el mismo PID que significa esto? Este comando retorna el PID del Shell actual  Que me retorna el comando $!? No retorna nada en este caso 4) Contestar las siguientes preguntas (0. Un demonio (nomenclatura usada en sistemas UNIX y UNIX-like).  Ejecutar el comando top. es interactivo y por defecto se actualiza cada 3 segundos.50 puntos) o Definir el concepto de Servicio y Demonio. es decir. Es lo mismo? Un servicio (nomenclatura usada en Windows) es un programa de ordenador que funciona en segundo plano. Un servicio de Windows debe ajustarse a las normas y protocolos de interfaz del Service Control Manager. que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario. que puede ser ejecutado en forma persistente o reiniciado si se intenta matar el proceso dependiendo de la configuración del demonio y de las políticas del sistema. es decir. se ejecuta desde la línea de comandos.

en el sistema también existe un atributo llamado PPID Parent Process ID. Todos los procesos deben de tener un proceso que figure como padre. mientras que al usar kill -15 PID da por finalizado o terminado ese proceso pero no lo mata. Los procesos en Linux (o en cualquier sistema operativo) son programas que están en ejecución y se identifican mediante el PID. Si la respuesta se devuelve sin información es que no hay procesos presentes. Muestra los trabajos que estás ejecutando en primer plano (o) en segundo plano. número único o de identificación del proceso. Para ver el PPID de los distintos procesos. Indicar la diferencia entre ejecutar kill -9 PID y ejecutar kill -15 PID ?. padre del proceso. o Para que me sirven los PID y los PPID obtenidos de la ejecución de un proceso? Process ID. El PID (Process Identificator) es el número que se le asigna a un proceso cuando se inicia. o Con el comando KILL podemos terminar procesos en ejecución (Como los sleeps de los ejercicios). Me ayuda en los siguientes aspectos:  Cuando una tarea tarda mucho en finalizar  Cuando un proceso debe de ejecutarse de forma indefinida  Para analizar las E/S en tiempo real  Ayudar a reducir la carga en la interfaz de usuario de la aplicación.  Puede ayudar a aislar los datos y procesos confidenciales o Cuál es la diferencia entre Jobs y procesos en linux? El comando jobs se utiliza para listar procesos que estés ejecutando en segundo plano o en primer plano. permiten que los procesos sean únicos es decir en un mismo momento es imposible que existan dos procesos con el mismo PID. . se inserta en la terminal ps –ef. Los parámetros 9 y 15 se pueden consultar con el comando kill –l La diferencia está en que al ejecutar kill -9 PID el proceso se muere y nos muestra killed. Son números crecientes y los procesos que se terminan y luego se vuelven a iniciar van a tener un PID diferente. lo que puede mejorar la disponibilidad y reducir los tiempos de respuesta interactiva. pero entonces que ocurre si un padre muere antes que alguno de sus hijos. este número se corresponde con el número PID del proceso padre.

todas llevan asignado un número. Hay muchas otras.com/bash-scripting-nohup-y-procesos-en-segundo- plano/ Notas de Ayuda Procesos en ejecución: Tú puedes consultar los procesos en ejecución con las siguientes variables y comandos. podemos enviar una señal a cualquier proceso. o $! is the PID of the last backgrounded process. y podemos ver la lista de señales si ejecutamos el comando kill –l: El comando kill envía la señal SIGTERM para terminar cualquier proceso en ejecución. que hace que el proceso termine en cuanto pueda. se puede visualizar en el comando Kill –l y el parámetro 9 o 15 nos muestra lo siguiente: Referencias http://www. por ejemplo. siempre que tengamos privilegios suficientes. Por defecto se envía la señal SIGTERM (15).Si se puede consultar agregando los parámetros. Este señal puede ser ignorada por el proceso si este está en una sección crítica. o kill -0 $PID checks whether it's still running. Sin embargo. El listado de los sigterm que pueden ser enviados se listan con kill -l . o Procesos en ejecución: Comando KILL: Con el comando kill. obliga a que termine el proceso de forma obligada. la señal SIGKILL(9) es no ignorable.nexolinux. o $$ is the PID of the current shell.