- Ejecuta kill -l. E investiga el uso de las señales 9,15,18,19 y 20 de kill.Kill es un comando unix/linux que permite enviar señales a uno o varios procesos del sistemas a traves de la shell. El listado completo de las señales disponibles puede visualizarse ejecutando Kill -l.
Pasaremos
a explicar el uso de varias señales:
Kill
-9:
Nos permite forzar a uno o varios procesos que terminen de forma
inmediata, sin solicitudes sin preguntas. Para ello se usa SIGKILL
(9), esta señal se debe usar con cautela, porque fuerza a terminar
inmediatamente, sin dejar terminar las peticiones pendientes de ese
proceso.
Ejemplo:
Realizamos una auditoria el cual aun tiene tareas pendientes,
seleccionamos la señal SIGKILL (9) junto con el proceso gracias a
<htop> y una vez ejecutemos la orden el proceso de auditoria
sera terminado, aunque tuviera pendiente cualquier tipo de subproceso
o tarea, dejando en la terminal donde se estaba ejecutando el proceso
un mensaje como muestra la imagen. Terminado (killed).
Kill
-15: Esta
señal, es la señal por defecto si no se especifica ningun numero de
señal, es decir tanto si escribimos Kill o Kill -15, el resultado
sera el mismo, los procesos a los cuales se le envia esta señal,
pueden limpiar su estado, es decir pueden guardar datos de la
configuracion a un archivo antes de terminarse, su nombre segun la
informacion del comando es SIGTERM (15). Es mas correcto usarlo pues
no tenemos el problema de terminar procesos y perder informacion.
Kill
-19:
Esta señal, suspende un proceso, por lo que todavia figuraria en la
lista de procesos y podriamos reanudarlo posteriormente, por ejemplo
en la siguiente captura, se ha parado el proceso <htop> pero se
puede ver que aun esta en la propia lista de procesos.
Kill
-18: Esta señal nos permite
reactivar el proceso que se ha suspendido anteriormente, ya que aun
esta en la lista de procesos, se podria decir que revivimos al
proceso.
Kill
-20: Esta señal al igual que
Kill -19 nos permite suspender un proceso el cual puede revivir con
Kill -18 como ya se ha visto, pero tiene dos diferencias importantes,
la primera que se puede mandar escribiendo el comando Kill -20 y el
PDI del proceso o pulsando la tecla Control + Z teniendo seleccionado
el proceso con el raton, ademas otra diferencia es que la señal
SIGTSTP (Kill -20) puede ser ignorada mientras que Kill -19 no.
- Indica claramente la diferencia entre la 15 y la 9.Todos los procesos tienes un archivo de cabezera que contiene los pasos que deben seguir si recibe una señal en particular, si recibe la señal Kill -15, el proceso puede detenerse inmediatamente, o detenerse tras un breve retraso despues de limpieza de recursos. En cambio la señal Kill -9 la señal es enviada directamente a proceso padre <Init>, en ese momento Init detiene el proceso, dicho proceso nunca tiene la oportunidad de tomar la señal y actuar en consecuencia.En algunas ocasiones ni siquiera esta orden puede matar con exito los procesos que se le llama procesos zombi, y segun todas las fuentes solo reiniciando el equipo son borrados estos procesos del sistema.
- ¿Qué señal se lanza por defecto si no se especifica una?Cuando no se espeficia ninguna opcion es decir ejecutamos la orden:Kill [el numero del proceso que deseamos cerrar], se ejecuta igual que si tuvieramos la opcion numero 15 <SIGTERM>, es decir termina el proceso que le hemos indicado, lo mata, aunque seria mas correcto decir lo cierra.Ejemplo: Tenemos en un terminal ejecutandose <htop> el cual nos muestra el PDI del mismo proceso, en este caso el numero 2579, a su vez en otra terminal escribimos la orden <kill 2579>
Al
darle a ejecutar, nos cerrara el proceso de <htop> dejando la
terminal lista para ejecutar otro comando. Este comportamiento es
identico al que realizaria la orden <kill -15 2579>.
- Pon un ejemplo claro de uso para las señales 9,15,18,19,20
Los ejemplos son variados, ademas de
las capturas para la pregunta numero 1, se puede añadir por ejemplo,
si estamos usando el programa wireshark para capturar informacion de
nuestra red, podemos usar Kill -19 para suspender este proceso y
mantenerlo dormido para que no capture informacion que no deseamos o
no nos interesa, tambien podriamos usar Kill -20 pero como ya hemos
indicado no es 100% seguro que suspendiera el proceso pero mas comodo
al no tener que escribir el comando sino pulsar Control + Z.
Podemos usar en el mismo ejemplo de
antes el Comando Kill -18 y reanudar el proceso wireshark y seguir
capturando paquetes de nuestra red.
Usariamos Kill -15 cuando algun
proceso no responde a la formas normales de cerrar, un navegador que
tenemos varias ventanas abiertas y esta relentizando nuestro equipo.
Si usando Kill -15 no respondiera el navegador siguiera relentizando
el equipo, usaria Kill -9 que mataria el proceso sin ningun tipo de
espera.