Powered By Blogger

martes, 27 de enero de 2015

Investiga los tipos de señales del comando KILL

Investiga los tipos de señales del comando KILL
1.     Ejecuta kill -l. E investiga el uso de las señales 9,15,18,19 y 20 de kill.

·         Para utilizar el comando kill en linux y matar algún proceso solo debes indicar en identificador de proceso, este puede ser llamado PID o Process ID, para conocer el PID de un programa o proceso puedes utilizar el comando ps para obtener una lista de los procesos que están en ejecución. Aquí te pongo un ejemplo:

·         $ ps
·         PID TTY TIME CMD
·         2541 pts/0 00:00:00 bash
·         2590 pts/0 00:00:00 ps

*      Uso de las señales 9, 15, 18,19 y 20 kill.

*      9) SIGKILL Kill (Forzar que el proceso termine)
*      Destrucción inmediata del proceso. Tratamiento: exit. No reprogramable, no ignorable.

*      15) SIGTERM Terminate (Terminar normalmente el proceso)
*      Terminación. Tratamiento por defecto: exit. Reprogramable.

*      18) SIGCONT Continue (Corre un proceso detenido)
*      Continúa si estaba parado.Tratamiento por defecto: continuar. Reprogramable.

*      19) SIGSTOP Stop (Detiene un proceso)
*      Detiene el proceso. Se genera al pulsar "^z" durante la ejecución. No reprogramable, no ignorable.

*      20) SIGTSTP Terminal (Pausa el proceso)
*      Parada de terminal.

2.     Indica claramente la diferencia entre la 15 y la 9.

*      9. SIGKILL: Esta señal provoca un apagado forzoso del proceso. A diferencia de las anteriores, no puede ser ignorada ni manejada por un controlador de señales. Es la manera más segura de matar un programa si no podemos hacerlo de las formas anteriores.

·         Los procesos zombies no se pueden matar, ya que están realmente muertos y a la espera de que su proceso padre los recoja.

·         Procesos que se encuentren bloqueados, no se matarán hasta que se levanten de nuevo.


·         El proceso init es especial: Ignora SIGKILL.

·         Como SIGKILL no permite que los procesos terminen de forma limpia, en muchos sistemas el procedimiento de apagado se produce utilizando SIGTERM antes que SIGKILL.

·         Un proceso dormido no interrumpible no puede terminar (ni liberar sus recursos) aunque reciba un SIGKILL. Esta es una de las situaciones en las que un sistema UNIX debe reiniciarse.

*      15. SIGTERM: Señal que se envía el proceso para comunicarle un apagado “amable” (cerrando conexiones, ficheros y limpiando sus propios búfer). También puede ser controlada o ignorada por un manejador de señales del proceso. Es la señala que mandan por defecto: kill y killall desde la terminal.Es la señal por defecto.

3.     ¿Qué señal se lanza por defecto si no se especifica una?

·         La señal por defecto es SIGTERM

4. Pon un ejemplo claro de uso para las señales 9, 15, 18,19 y 20.

·         (9) SIGKILL: Esta señal termina el proceso que la recibe de forma inmediata. Empleela sólo para detener procesos que no terminan con la señal SIGTERM.

·         Usted observa que el proceso aún se está ejecutando. No ha finalizado. Para finalizar este proceso, y cualquier proceso que se resista a ser finalizado, debe enviar una nueva señal denominada SIGKILL. La señal por defecto es SIGTERM.
·         # kill -SIGKILL 9790
·         # ps -aef|grep sqlplus|grep oracle

*      (15) SIGTERM: Esta señal solicita la terminación del proceso que la recibe.

*      En ocasiones usted deseará terminar algún proceso, por ejemplo porque deja de responder o tarda demasiado en completarse; para hacerlo puede emplear el programa kill para enviarle una señal de terminación. Una señal es como un "llamado de atención" que se hace a un proceso en situaciones excepcionales (por ejemplo errores), pueden ser producidas por otros procesos, por el usuario o por el sistema operativo y en la mayoría de los casos conducen a la terminación del proceso que recibe la señal. Hay diversos tipos de señales, cada una tiene un número, un nombre que la identifica y una acción predefinida (que generalmente puede ser cambiada por el proceso). Un usuario puede enviar una señal a un proceso con el programa kill seguido de la señal que enviará y del proceso que la recibirá: kill -SIGTERM 945

*      Este ejemplo envía la señal SIGTERM al proceso con identificación 945 (en vez de SIGTERM pudo haberse usado 15 que es el número que corresponde a esa señal).


Ø  (18) SIGCONT: Reanuda un proceso suspendido previamente por la señal SIGTSTP.
Ø  # Kill –SIGCONT 18 5981

o   (19) SIGSTOP: Para el proceso. Algunas veces usted puede querer simplemente detener el proceso en vez de finalizarlo. Puedo utilizar la opción -SIGSTOP con el comando kill.
o   # kill –SIGSTOP19  9790
o   # ps -aef|grep sqlplus|grep oracle

§  (20) SIGTSTP: La misma señal producida por Control-z, su efecto es suspender la ejecución de un proceso ---para reanudarla después.

§  # Kill –SIGTSP 20 5981