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