Publicando esta pregunta porque me sorprendió no encontrarla directamente contestada; disculpas si esto es un duplicado - ¡Lo busqué!
He escuchado eso kill -9
o kill -SIGKILL
es malo, pero no entiendo por qué. Si no debería, kill -9
¿ qué debo hacer para matar un proceso?
kill -9
que ", OP dice " grande, que funcionó! Voy a recordar que de ahora en adelante! ", Y B viene en advertir " esperakill -9
es peligroso! ", Sólo después del hecho.Respuestas:
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 enviarloSIGKILL
usted mismo manualmente . Probablemente puedo contar con una mano la cantidad de veces que he necesitado enviar unSIGKILL
(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
) oSIGTERM
(como en "terminar") para indicar a un proceso que detenga lo que está haciendo y salga.Algunas lecturas adicionales:
kill
señales-9
significakill
señalesfuente