SIGKILL
retira la alfombra de su proceso de ejecución y la termina de inmediato. Para programas muy simples esto está bien; en la práctica, sin embargo, hay muy pocos programas "simples".
Debajo de las cubiertas, incluso los programas aparentemente triviales hacen todo tipo de trabajo transaccional del que necesitan limpiar antes de terminar (piense en el finally
bloque en Java y otros lenguajes de programación), como cerrar identificadores de recursos, eliminar archivos temporales y eliminar datos de memoria al disco. No puede anticipar cuándo un programa podría estar haciendo algo como esto.
Si tiene suerte, no notará que algo anda mal si envía un mensaje SIGKILL
, pero no puede tener suerte para siempre, y es posible que no sepa que algo salió mal hasta que sea demasiado tarde para recuperar lo perdido.
Casi nunca debería necesitar enviar un SIGKILL
, y debe estar seguro de haber agotado sus alternativas antes de hacerlo. En muchos casos, reiniciar (que eventualmente enviará SIGKILL
correos electrónicos a programas que se comportan mal) es más seguro que enviarlo SIGKILL
usted mismo manualmente . Probablemente puedo contar con una mano la cantidad de veces que he necesitado enviar un SIGKILL
(y probablemente todo de mi propia creación).
En términos generales, puede usar Ctrl+ C(que envía el proceso en primer plano a SIGINT
) o SIGTERM
(como en "terminar") para indicar a un proceso que detenga lo que está haciendo y salga.
Algunas lecturas adicionales: