1.
Investiga el uso de las
señales 9, 15, 18,19 y 20 de kill.
9. SIGKILL-Destrucción inmediata del proceso. Tratamiento: exit. No reprogramable,
no ignorable.
18. SIGCONT- Continúa si estaba
parado.Tratamiento por defecto: continuar. Reprogramable.
19. SIGSTOP- Detiene el proceso. Se genera
al pulsar "^z" durante la ejecución. No reprogramable, no ignorable.
20. SIGTSTP- 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
(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.
# kill –SIGSTOP19 9790
# 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